msbuild - 如何在 MSBuild 中使用特定的 Windows SDK?

标签 msbuild compilation winapi

我有一个由许多 C++ 和 C# 项目组成的大型项目,以及一个用于构建整个项目的 MSBuild (3.5) 脚本。此脚本基于 VCBuild (C++ 项目)和 MSBuild (C# 项目)任务。它由 Continuous Integration server 定期执行.

我希望能够选择用于编译的特定 Windows SDK(v6.0A、v7.0、v7.1...)。由于我的存储库中有许多分支最终需要不同的 SDK 版本,因此我需要一种方法来在每次编译之前选择正确的分支。

在我的电脑上,我已经能够设置一个批处理脚本来调用正确的 SetEnv.cmd在启动 MSBuild 脚本之前。但是这个解决方案在 CI 服务器上不可用,因为 MSBuild 脚本是直接执行的。

你知道一种实现等价于SetEnv.cmd的方法吗?在 MSBuild 下?

最佳答案

您可以创建一个自定义 MSBuild 任务,该任务使用 Environment.SetEnvironmentVariable 根据指定的平台 SDK 版本设置适当的环境变量值。检查 vcvars32.bat(或 vcvars64.bat,具体取决于您的目标配置)以查看需要设置哪些环境变量。

关于msbuild - 如何在 MSBuild 中使用特定的 Windows SDK?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3015842/

相关文章:

用 1 main 编译多个 C 和头文件

c++ - 将 C++ 程序转换为 Windows 服务?

c++ - 当从类构造函数中用于窗口类时,为什么winapi坚持使用PCSTR而不是PCWSTR?

c++ - 用于获取操作系统语言(本地化信息)的 Win32 API?

linux - Centos 上的 MSBuild 返回 "The imported project "/Microsoft.Cpp.Default.props“未找到”

.net - .NET 4.0构建服务器引用程序集警告MSB3644

Python版本还显示 `+`符号

TFS 2015 :No agent could be found with the following capabilities: msbuild, Visual Studio ,vstest

msbuild - 如何在msbuild文件中给出相对路径?

lua - 从 Common Lisp 调用 Lua