- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近一直忙于为我一直在设计的代码库制作正确的构建脚本,并且一直致力于让 MSBuild 为我的 Windows 构建正确编译。我想要做的是从批处理脚本中调用 MSBuild 而无需打开 Visual Studio IDE,如果我不是从 Visual Studio 的开发人员命令提示符中执行它,它似乎会不断执行。我的脚本很简单,就是调用
start C:\Program Files (x86)\...\MSBuild\15.0\Bin\MSBuild.exe <Project>.sln
除了标记在它末尾的一些其他说明符之外,这就是我试图用来运行我的 Windows 构建的内容。这里的问题是,每当在 VS Dev Prompt 之外调用此代码时,Visual Studio 本身就会打开,根本不会构建代码。我也找不到其他人为同样的问题而苦苦挣扎,因为它似乎是 MSBuild 和 Visual Studio 集成的新事物。使用旧版本的 MSBuild 进行的测试表明,我可以在 Dev Prompt 之外按照我的意愿构建项目。我是否可能遗漏了 Dev Prompt 中提供的一些环境变量来更改可执行行为?我似乎也找不到任何可以改变这一点的可执行说明符。
也许我对这个问题采取了完全错误的方法?我的最终目标是为消费者提供一组构建脚本,一个用于他们所针对的每个平台,因此我绝对愿意接受其他解决方案。
最佳答案
规范答案:
您可以使用带有/build 命令行选项和项目文件名称的 devenv 命令。
或者,您可以运行其中一个 vcvars*.bat 脚本来设置必要的环境,然后使用 msbuild。
有关详细信息,请参阅 https://learn.microsoft.com/en-gb/cpp/build/building-on-the-command-line .
更新:与上面的官方建议相反,这是在我装有 VS2017 社区版的笔记本电脑上有效的方法。
通过运行“VS2017 的开发人员命令提示符”所针对的 bat 文件来设置环境。 (在开始菜单中右键单击它,然后选择“打开文件位置”,然后右键单击快捷方式并选择“属性”。对我来说是“C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat”。
您应该从构建脚本中调用此文件。
cd 到您的项目目录,然后像这样使用 msbuild:
msbuild My-project.vcxproj/p:Configuration=Release
出于某些非常奇怪的原因,如果我打开官方开发人员命令提示符,但从另一个命令提示符启动 devenv,即使设置了环境变量,我也可以使用 devenv 方法。 (我什至比较了两个命令提示符中的环境变量集,它们是相等的。)
关于c++ - 如何在 MSVS 开发提示符之外运行 MSBuild?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48513758/
我是一名优秀的程序员,十分优秀!