Mono の xbuild の MSBuild タスクで .NET 3.5 フレームワークを使用するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/3695233

質問

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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top