1

我已经使用Visual Studio 2012 Package Project(来自VS2012 SDK)创建了 .NET 解决方案。使用 Visual Studio,我在“调试”配置模式下成功编译并运行了这个项目(连同整个解决方案) ,并在“任何 CPU ”平台上运行。但是,当我尝试使用MsBuild在命令行中构建解决方案时,出现错误:

命令:

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

错误:

错误:找不到 VS SDK 的安装。
错误 MSB4018:“FindVsSDKInstallation”任务意外失败。
错误 MSB4018:System.ArgumentNullException:值不能为空。
错误 MSB4018:参数名称:path1
错误 MSB4018:在 System.IO.Path.Combine(String pat h1, String path2)
错误 MSB4028:无法从“IncludesPath”参数中检索“FindVsSDKInstallation”任务的输出。值不能为空。
错误 MSB4028:参数名称:path1

所有活动都在我的本地 Windows 7 上执行,并安装了 VS2012 和 SDK。

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

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

4

1 回答 1

2

首先,您需要使用 Visual Studio 命令提示符,或调用 vsvars 批处理文件,例如“C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\vsvars32.bat”
其次,您提供的链接还说

“我认为设置“VsSDKInstall”环境变量也应该有效”

这里有一个相关的帖子

于 2013-09-25T14:36:51.263 回答