[Xamarin]创建第一个Xamarin.Form跨平台应用及GTK#平台设置

Xamarin 是一个开放源代码平台,用于通过 .NET 构建适用于跨平台的新式高性能应用程序。

Xamarin可以构建用C#编写的跨平台应用,目前支持的平台包括Windows、Linux、Android和IOS平台。开发Mac和Ios程序需要对应的设备。Android、IOS和UWP平台由微软提供支持,GTK#(Linux,Win7)支持由社区提供。详细参阅Xamarin.Forms 平台支持
注意:观看此文需要你对VisualStudio使用和.NET开发有一定基础。

配置VisualStudio

本文以VisualStudio2017为例,支持更高的版本。
安装
1.使用.NET的移动开发
2.通用Windows平台开发


1

2

其他自动关联项目一并安装。

新建第一个Xamarin项目

打开vs,新建一个Xamarin项目。


Cross-Platform.JPG

默认OK即可。


默认设置.JPG

然后就可以看到第一个工程了。解决方案包含四个项目:
  1. 共享代码项目,你的大部分代码都会写在这里面
  2. 第二个是构建Android平台应用项目,安卓专用代码写在这里
  3. 第三个是构建IOS平台,IOS专用代码写在这里
  4. 第三个是构建UWP项目,UWP专用代码写在这里

下面设置UWP项目为启动项,点击调试,然后你的第一个Xamarin应用程序就运行成功了!


第一个程序.JPG

加入GTK#平台

安装GTK支持

在Windows上安装GTK#支持,下载GTK# for .NET这个。Linux的支持程序也在这个页面,我们之后会用到。安装完成后重启电脑。
回到VisualStudio,在解决方案里加入新的项目类库(.NET Framework)注意有很多种类库,必须选Framework的,因为Xamarin的GTK包需要.NET Framework。

管理NuGet包

加入项目之后,管理它的NuGet包。
首先安装Xamarin.Forms,注意包版本需要和你的第一个项目,也就是共享项目里的版本保持一致,否则将报错。初始版本较低,你也可以把所有项目的Xamarin.Forms升到高版本,注意所有项目里的都需要保持同一版本,其依赖包需要一起升级。
然后安装Xamarin.Forms.Platform.GTK,同样需要和Xamarin.Forms包保持同一版本。

添加dll引用

最后给GTK项目添加dll引用,去你刚才安装的GTK# for .NET的安装目录里,默认在C:\Program Files (x86)\GtkSharp,然后找到一个叫2.12的文件夹,它里面有一个lib文件夹,在里面找到我们需要的dll,分别是:

  • atk-sharp.dll
  • gdk-sharp.dll
  • glade-sharp.dll
  • glib-sharp.dll
  • gtk-dotnet.dll
  • gtk-sharp.dll
  • pango-sharp.dll
    总计七个。我的电脑上它们在 GtkSharp\2.12\lib\gtk-sharp-2.0 里,你的电脑可能不一样,但是找到这七个dll即可。
    有可能只有6个,如果遇到这种情况可以继续尝试,如遇到问题请访问MSDN
    哦对了,别忘了还要添加对第一个项目,也就是共享代码的项目的引用,如果没有添加的话会找不到App类。

修改代码

添加引用之后,在GTK项目里的唯一一个类里面加入以下代码:

using System;
using Xamarin.Forms;
using Xamarin.Forms.Platform.GTK;
[STAThread]
        public static void Main(string[] args)
        {
            Gtk.Application.Init();
            Forms.Init();

            var app = new App();
            var window = new FormsWindow();
            window.LoadApplication(app);
            window.SetApplicationTitle("Game of Life");
            window.Show();

            Gtk.Application.Run();
        }

最后调试运行

出现窗口,写着 "Welcome to Xamarin.Forms",也许和上面的UWP程序界面有一点点不同。恭喜你,成功构建了第一个Xamarin的GTK#版本应用程序!
如果报错你的.NET Framework版本出错,请升级GTK项目的.NET Framework版本到第一个项目需要的版本。

尝试在Linux上构建Xamarin的GTK#程序

Linux版本是Ubuntu18.04.4LTS,经测试在deepin v15版本成功运行。

安装GTK支持

安装对应版本的Mono,GTK#会作为Mono的一部分被安装。重启电脑。

编译程序

把我们的项目复制到Linux上去。用MonoDevelop打开项目解决方案,可以看见除了GTK之外的项目都出现错误,我们先不管它。点开GTK项目的引用,当然对dll的引用也都出错了,用linux的本机dll替换调之前在windows上引用的dll。不同版本路径可能不同,我的是在/user/lib/cli/下。
编译运行,出现欢迎窗口,大功告成!
如果运行时出现缺失某dll错误,请重启电脑在尝试。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容