2016-10-18 2 views
2

Visual Studioから自分のMacビルドホストに対してXamarin.iOSアプリケーションをビルドしています.AOT /ネイティブコンパイル用のMacビルドホストにバイナリを送信する前に、PostSharpを使用して出力に対してAOPを実行します。Visual Studio 2015からビルドするときに、Xamarin.iOSのカスタムリンカー設定を指定するにはどうすればよいですか?

PostSharpは、私が「リンクすべて」オプションを使用していますので、AOTコンパイラは、結果のバイナリからそれらを取り除きので、自分のアプリケーションによって参照されていないターゲットアセンブリの中にいくつかの隠し実装タイプを注入します。

"Link All"オプションを "Link SDK"または "None"に変更すると、問題は修正されますが、非常に大きなバイナリが生成され、アプリケーションのリリースには使用できません。

コードはツールによって生成されているので、私は直接コードに[保存]属性を使用することはできません、それは/内部プライベートであるので、私は手動で自分のアプリケーションのコードでそれを参照することはできません。私は手でタイプ名を指定するには、リンカの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は構築プロセス中にホストを構築します。

+0

リンカーXMLがビルドホストにコピーされていますか?これはビルド出力に表示されます。 確認するべき点は、ファイルが正しいタイプのプロジェクトで参照されていることです。私は、参照されていない資産がMacビルドホストにコピーされないという問題がありました。 Xamarin Studioは動作するために参照する必要はないので、Visual Studioを使用していたため、Xamarin Studioは機能しませんでした。 –

答えて

0

リンカXMLファイルがプロジェクトファイルに含まれており、出力タイプがCopy Alwaysに設定されていることを確認してください。

Visual Studioのビルドホストにコピーに出力ディレクトリを作成し、プロジェクトの設定が正しいでない限り、それはあなたのリンカのXMLファイルをコピーしません。

+0

それは、ありがとう! –

関連する問題