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专业版或更高版本,那么你可以同时包含您的C#项目和你的C解决方案文件++/CLI项目,所以从Visual Studio中构建一切都相当简单。但是,如果您使用的是Visual Studio的Express版本,那么您可能需要使用MSBuild(或其他构建脚本工具),因为在同一解决方案中不能有与C++/CLI项目相同的解决方案一个使用Express版本的C#项目,因此您将需要一个MSBuild脚本,它可以一步完成所有各种项目的编译。
我遇到过的一个问题是使用C++/CLI项目进行签名。如果您需要签署您的C++/CLI程序集,那么您需要向MSBuild脚本中添加一个步骤,以便在使用“sn”工具(应该是Windows SDK的一部分)为C++/CLI程序集重新签名后它已被编译。如果您使用的是.snk.pfx文件,那么您需要使用“sn”工具先将该密钥添加到密钥容器(使用-i开关),然后您将需要使用该密钥容器当您重新签署装配件时(使用-Rc开关)。
你应该把它全部在VS.有没有比你想要的“VS”更多的东西? – mydogisbox 2012-04-09 18:11:43
你的意思是我应该有原始的MSVS项目用于在Windows和CMakeLists中构建Linux?但在这种情况下,如果我想将源文件添加到本机库,我需要更改MSVS项目和CMakeLists。 – dizel3d 2012-04-09 18:29:30
请参阅下面的答案。 – mydogisbox 2012-04-09 18:36:54