我正在为使用 Monotone 、 CMake 、 Visual Studio Express 2008 和自定义测试的大型 C++ 解决方案编写签出、构建、分发、测试和提交周期脚本。
所有其他部分看起来都非常简单,但我不知道如何在没有 GUI 的情况下编译 Visual Studio 解决方案。
该脚本是用 Python 编写的,但一个答案可以让我只调用: os.system 就可以了。
原文由 John Mulder 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在为使用 Monotone 、 CMake 、 Visual Studio Express 2008 和自定义测试的大型 C++ 解决方案编写签出、构建、分发、测试和提交周期脚本。
所有其他部分看起来都非常简单,但我不知道如何在没有 GUI 的情况下编译 Visual Studio 解决方案。
该脚本是用 Python 编写的,但一个答案可以让我只调用: os.system 就可以了。
原文由 John Mulder 发布,翻译遵循 CC BY-SA 4.0 许可协议
正如其他人指出的那样,使用 msbuild
对我有用,但我需要做的远不止这些。首先, msbuild
需要能够访问编译器。这可以通过运行来完成:
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"
然后 msbuild
不在我的 $PATH 中,所以我必须通过它的显式路径运行它:
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe" myproj.sln
最后,我的项目使用了一些变量,例如 $(VisualStudioDir)
。似乎这些不是由 msbuild
设置的,所以我必须通过 /property
选项手动设置它们:
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe" /property:VisualStudioDir="C:\Users\Administrator\Documents\Visual Studio 2013" myproj.sln
那条线终于让我编译了我的项目。
奖励:似乎命令行工具在使用 30 天后不需要注册,就像“免费”的基于 GUI 的 Visual Studio 社区版一样。有了 Microsoft 注册要求,该版本几乎不是免费的。如果有的话,就像在 Facebook 中一样免费……
原文由 josch 发布,翻译遵循 CC BY-SA 3.0 许可协议
3 回答2k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
我知道有两种方法可以做到这一点。
方法一
第一种方法(我更喜欢)是使用 msbuild :
方法二
您还可以运行:
vcexpress 选项立即返回并且不打印任何输出。我想这可能是您想要的脚本。
请注意,DevEnv 没有随 Visual Studio Express 2008 分发(当我第一次遇到类似问题时,我花了很多时间试图弄清楚这一点)。
因此,最终结果可能是:
您还需要确保您的环境变量是正确的,因为默认情况下 msbuild 和 vcexpress 不在系统路径上。要么启动 Visual Studio 构建环境并从那里运行你的脚本,要么修改 Python 中的路径(使用 os.putenv )。