我有一个混合的VB.NET和C ++项目的解决方案。使用Visual Studio 2005时,您可以设置“工具 - >>选项 - >项目和解决方案 - > VC ++目录”,以帮助编译器找到您的包含文件。使用MSBuild构建相同的解决方案时,我看不到如何传递这些设置。如果没有指定此路径,C ++将无法编译。从Visual Studio构建此解决方案时,它可以完美地构建。
为MSBUild传递此路径的方法是什么?
编辑:看起来MSBuild没有将路径(或/ u开关)传递给vcbuild。从VCBuild开始改为依赖失败。
答案 0 :(得分:13)
要设置包含目录,可以将它们添加到INCLUDE环境变量中。您使用与PATH环境相同的格式。变量 - 用分号分隔路径。
要设置库目录 - 您可以通过将它们放入LIB环境变量中以类似的方式执行此操作。
要设置环境变量,只需右键单击“我的电脑”,选择“属性”。然后转到“高级”选项卡,然后有一个名为“环境变量”的按钮。
或者,您可以从BATCH脚本运行MSBuild,在这种情况下,在调用MSBuild之前,您可以设置INCLUDE和LIB变量,如下所示:
set INCLUDE=C:\Libraries\LibA\Include
set LIB=C:\Libraries\LibA\Lib\x86
答案 1 :(得分:4)
...而且您可能希望将%INCLUDE%和%LIB%附加到您的变量以避免覆盖它们
set INCLUDE=C:\Libraries\LibA\Include;%INCLUDE%
set LIB=C:\Libraries\LibA\Lib\x86;%LIB%
答案 2 :(得分:4)
您可以使用/p[roperty]:useenv=true
开关在较新版本的MSBuild中转发环境变量。请参阅此处的完整文章http://blogs.msdn.com/b/vcblog/archive/2010/01/11/vcbuild-vs-c-msbuild-on-the-command-line.aspx