我有一个用Mono.Mac编写的应用程序使用GTK#作为UI。我现在可以访问Xamarin.mac.Im尝试将mono.mac解决方案迁移到xamarin.mac。我尝试将mono.mac中的代码复制粘贴到新的xamarin.mac项目中,但Xamarin.mac项目中没有GUI构建器。那么Xamarin.mac是否支持GTK#?有没有更好的方式可以迁移?
编辑:
我的目标是将单声道运行时与应用程序包捆绑在一起,以便用户无需手动安装。
答案 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}