从Visual Studio 2015构建时,如何为Xamarin.iOS指定自定义链接器配置?

时间:2016-10-18 01:20:57

标签: xamarin visual-studio-2015 xamarin.ios

我正在使用Visual Studio对我的Mac构建主机构建我的Xamarin.iOS应用程序,并使用PostSharp对输出执行AOP,然后将二进制文件发送到我的Mac构建主机以进行AOT /本机编译。

PostSharp将一些隐藏的实现类型注入到我的应用程序未引用的目标程序集中,因此AOT编译器将它们从生成的二进制文件中删除,因为我正在使用" Link All"选项。

更改"全部链接"选项" Link SDK"或"无"修复了这个问题但产生了一个非常大的二进制文件,所以它不能用于发布应用程序。

由于代码是由工具生成的,我不能直接在代码上使用[Preserve]属性,因为它是内部/私有的,我无法在我的应用程序代码中手动引用它。

根据以下文档,我可以指定一个链接器xml文件来手动指定类型名称:

https://developer.xamarin.com/guides/cross-platform/advanced/custom_linking/

我已成功将此技术用于我的Xamarin.Android应用程序,在Mac上的Xamarin Studio中编译我的Xamarin.iOS应用程序时,我也可以成功使用此技术。

但是,当从Visual Studio 2015编译Xamarin.iOS应用程序时,我无法弄清楚如何实现这一点。虽然我可以在.csproj文件中添加必要的mtouch参数,但我无法弄清楚如何将xml文件传递给Mac在构建过程中构建主机。

1 个答案:

答案 0 :(得分:3)

确保链接器XML文件包含在项目文件中,输出类型设置为Copy Always

Visual Studio构建将输出目录复制到构建主机,除非项目配置正确,否则它不会复制链接器XML文件。