msbuild - 在独立的平台中,从msbuild项目运行. NET 可执行文件

  显示原文与译文双语对照的内容
0 0

在使用. 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>

它是"单声道"部分,它将构建脚本与mono框架联系起来。 是否有一种方法可以编写这个构建脚本,以便它在 MS. NET 框架上运行,以及单一的框架。

现在我这里的问题与NUnit有关。 但是它可能是任何其他. NET 可执行文件。

时间: 原作者:

0 0

你可以使用平台条件,例如:

<Exec command="。foo.exe arg1 arg2"condition="'$ ( 操作系统)'=='windows_nt'"/>

按条件执行等价的单声道条件可能是"unix"或者"osx"而不是"windows_nt"。

有关更多信息,请查看: http://www.mono-project.com/Porting_MSBuild_Projects_To_XBuild#Platform_specific_items

0 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>

原作者:
...