MSBuild 是一个不错的构建脚本工具,可以很好地与 Visual Studio 项目文件(本质上是 MSBuild 脚本本身)集成。如果您以前从未使用过它,可能会有一些学习曲线,但除此之外,使用它来构建 .NET 项目非常简单。
使用 MSBuild 脚本构建 Visual Studio 项目的示例:
<!-- Compile a C# project and output to a staging directory -->
<MSBuild Projects="MyCsProject\MyCsProject.csproj" Properties="outDir=Staging\bin\MyCsProject" />
<!-- Compile a C++/CLI project and output to a staging directory, then re-sign it -->
<MSBuild Projects="MyCppProject\MyCppProject.vcxproj" Properties="outDir=Staging\bin\MyCppProject" />
<Exec Command=""$(WindowsSDKDirectory)\Bin\sn.exe" -Rc Staging\bin\MyCppProject\MyCppProject.dll $(StrongNameKeyContainer)" />
如果您使用的是 Visual Studio Professional 或更高版本,那么您可以拥有一个包含 C# 项目和 C++/CLI 项目的解决方案文件,因此在 Visual Studio 中构建所有内容相当容易。
但是,如果您使用的是 Visual Studio 的 Express 版本,那么您可能需要使用 MSBuild(或其他构建脚本工具),因为您不能在与 C# 项目相同的解决方案中使用 C++/CLI 项目Express 版本,因此您将需要一个 MSBuild 脚本,它可以一步编译所有各种项目。
我在 C++/CLI 项目中遇到的一个问题是签名。如果您需要签署您的 C++/CLI 程序集,那么您需要在您的 MSBuild 脚本中添加一个步骤以使用“sn”工具(应该是 Windows SDK 的一部分)在之后重新签署您的 C++/CLI 程序集它已被编译。如果您使用的是 .snk.pfx 文件,那么您需要使用“sn”工具首先将该密钥添加到密钥容器(使用 -i 开关),然后您需要使用该密钥容器当您重新签署程序集时(使用 -Rc 开关)。