2

私は .NET ライブラリに取り組んでおり、MS .NET フレームワークと Mac/Linux マシンの mono インストールの両方から実行できるように、ビルド スクリプトを非常に汎用的なものにしたいと考えています。

ここでの問題は NUnit の実行です。nunit 実行可能ファイルをダウンロードし、lib フォルダーに配置しました。Mac で実行するには、ビルド スクリプトに次のように記述する必要があります。

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  ...

  <Target Name="Test" AfterTargets="Compile">
    <Exec Command="mono lib/NUnit/nunit-console.exe $(OutputAssembly)" />
  </Target>
</Project>

問題は、ビルド スクリプトをモノ フレームワークに結び付ける「モノ」部分です。このビルド スクリプトを記述して、MS .NET フレームワークと Mono フレームワークの両方で実行できるようにする方法はありますか?

ここで私の問題はNUnitに関連しています。ただし、他の .NET 実行可能ファイルでもかまいません。

4

2 に答える 2

2

次のようなプラットフォーム条件を使用できます。

<Exec Command="foo.exe arg1 arg2" Condition=" '$(OS)' == 'Windows_NT' " />

条件付きで実行します。同等のモノラル条件は、「Windows_NT」ではなく「Unix」または「OSX」のいずれかになります。

詳細については、こちらをご覧ください: http ://www.mono-project.com/Porting_MSBuild_Projects_To_XBuild#Platform_specific_items

于 2011-10-12T17:39:57.240 に答える
0

次の(テスト済みの)提案はどうですか。

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ManagedExeLauncher Condition="('$(OS)' != 'Windows_NT')">mono </ManagedExeLauncher>
     ...
  </PropertyGroup>      

  ...

  <Target Name="Test" AfterTargets="Compile">
    <Exec Command="$(ManagedExeLauncher)lib/NUnit/nunit-console.exe $(OutputAssembly)" />
  </Target>
</Project>
于 2011-12-02T15:43:06.733 に答える