我已经使用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
才能成功构建它?