Xamarin.mac是否支持GTK#用户界面

时间:2015-09-06 13:15:27

标签: c# macos xamarin mono xamarin.mac

我有一个用Mono.Mac编写的应用程序使用GTK#作为UI。我现在可以访问Xamarin.mac.Im尝试将mono.mac解决方案迁移到xamarin.mac。我尝试将mono.mac中的代码复制粘贴到新的xamarin.mac项目中,但Xamarin.mac项目中没有GUI构建器。那么Xamarin.mac是否支持GTK#?有没有更好的方式可以迁移?

编辑:

我的目标是将单声道运行时与应用程序包捆绑在一起,以便用户无需手动安装。

1 个答案:

答案 0 :(得分:1)

MonoMac .csproj信息:

首先,如果您没有升级到Xam.Mac对话框,可能是由于MonoMac项目文件中的以下一行或两行:

<SuppressXamMacUpsell>True</SuppressXamMacUpsell>
<SuppressXamMacMigration>True</SuppressXamMacMigration>

如果它们存在,只需编辑csproj文件(右键单击项目文件:选择工具/编辑文件),删除这些行,然后保存应该自动项目刷新的文件,如果没有,关闭并重新打开解决方案/项目。

当然,这假设项目在csproj文件中被标记为 MonoMac类型项目

此时我假设您的项目最初是作为普通的.Net项目创建的,并且您手动添加MonoMac作为参考,因此XamStudio和xbuild不会将其视为“特殊项目类型”。

在项目文件中查找ProjectTypeGuids标记:

以下是C#/ MonoMac项目:

<ProjectTypeGuids>{948B3504-5B70-4649-8FE4-BDE1FB46EC69};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

假设您只找到C#标签而不是MonoMac / Xam.Mac标签,我会更改项目类型并添加MonoMac,然后允许XamStudio将其转换为Xamarin.Mac(实际上只是更新guid和MonoMac参考到XamMac)..

当前项目:

<ProjectTypeGuids>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

编辑为:

<ProjectTypeGuids>{948B3504-5B70-4649-8FE4-BDE1FB46EC69};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

XamMac转换后:

<ProjectTypeGuids>{42C0BBD9-55CE-4FC1-8D90-A7348ABAFB23};{FAE04EC0-301F-11D3-BF4B 00C04F79EFBC}</ProjectTypeGuids>

此时,您的项目应该被视为XamMac类型,现在应该公开菜单中的捆绑,额外的项目选项等。

标准C#/ .Net项目标签:

{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}

Xamarin.Mac项目标签:

{42C0BBD9-55CE-4FC1-8D90-A7348ABAFB23}

MonoMac项目标签:

{948B3504-5B70-4649-8FE4-BDE1FB46EC69}