Mono の xbuild の MSBuild タスクで .NET 3.5 フレームワークを使用するにはどうすればよいですか?
-
02-10-2019 - |
質問
xbuild (明らかに Mac 上) を使用して MonoTouch プロジェクトをビルドしようとしています。これが私のxbuildプロジェクトです:
<Project DefaultTargets="Application" ToolsVersion="3.5" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ApplicationProjectFilePath>..\TestApp\TestApp.csproj</ApplicationProjectFilePath>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<MonoTouchReferencePath>/Developer/MonoTouch/usr/lib/mono/2.1/</MonoTouchReferencePath>
</PropertyGroup>
<Target Name="Application">
<MSBuild Projects="$(ApplicationProjectFilePath)" Targets="Rebuild" Properties="Configuration=AdHoc;Platform=iPhone;ReferencePath=$(MonoTouchReferencePath)" ToolsVersion="3.5"/>
</Target>
</Project>
これを実行すると、次の警告が表示されます。
/Library/Frameworks/Mono.framework/Versions/2.6.7/lib/mono/3.5/Microsoft.Common.targets: warning : Found a conflict between : 'System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' and 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. Using 'System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' reference.
フレームワークの xbuild リファレンス v3.5 を入手するにはどうすればよいですか?スクリプトからわかるように、私はいくつかのアプローチを試しましたが、どれもうまくいかないようです。
[また、monotouch.dll ライブラリがプロジェクト ファイル (TestApp.csproj) で参照されているのに、なぜ明示的に参照する必要があるのかわかりません。それに関するご意見も歓迎いたします。]
解決
MonoTouch は、3.5 ではなく、Silverlight フレームワークのスーパーセットを使用します。また、現時点では、MonoTouch とそのフレームワーク バージョンの xbuild ターゲットはありません。これを実装するには、Silverlight ターゲットや MonoDroid ターゲットなど、フレームワーク アセンブリの解決をオーバーライドするカスタム ターゲットが必要です。
現時点では、MonoDevelop のコマンドライン ツールである mdtool の build コマンドを使用することをお勧めします。
/Applications/MonoDevelop.app/Contents/MacOS/mdtool build
所属していません StackOverflow