1

我已经创建了.NET解决方案,包含Visual Studio 2012包项目(从VS2012 SDK)。在Visual Studio中,我成功编译并运行了此项目(以及整个解决方案),其中“调试”配置模式和“任意CPU”平台。但是,当我尝试使用建立在命令行的解决方案的MSBuild,我得到的错误:MsBuild with Visual Studio 2012包项目

命令:

msbuild MySolution.sln /p:Configuration=Debug /p:Platform="Any CPU" 

错误:

错误:无法找到安装为VS SDK。
错误MSB4018:“FindVsSDKInstallation”任务意外地失败 。
错误MSB4018:System.ArgumentNullException:值 不能为空。
错误MSB4018:参数名:路径1
错误MSB4018:在System.IO.Path.Combine(字符串拍拍 H1,字符串PATH2)
错误MSB4028:在 “FindVsSDKInstallation” 任务的OU tputs无法从“IncludesPath”参数中检索。值不能为 null。
错误MSB4028:参数名:路径1

所有活动都在我的本地Windows 7进行安装VS2012和SDK。

我在网上寻找解决方案,我发现以下主题:FindVsSDKInstallation task fails on the build box。有人说这样的项目应该编译为“x86”平台,因为devenv.exe进程是32位的。因此,我将项目属性的Platform Target属性更改为“x86”(对于“调试”模式)。结果是一样的 - 项目在VS中成功构建,但不在MsBuild中。

为什么使用VS正确构建VS2012 Package项目,但MsBuild失败?我应该如何运行MsBuild才能成功构建它?

回答

2

首先,您需要使用visual studio命令提示符或调用vsvars批处理文件,例如 “C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ Common7 \ Tools \ vsvars32。蝙蝠”
其次,你给的链接也说

‘我认为设置‘VsSDKInstall’环境变量应该工作 太’

有一个相关的帖子here