MsBuild with Visual Studio 2012 Package Project

2019-08-05 13:21发布

问题:

I have created .NET solution with Visual Studio 2012 Package Project (From VS2012 SDK). With Visual Studio I successfully compile and run this project (along with entire solution) in "Debug" configuration mode, and for "Any CPU" platform. But when I try to build solution in command line using MsBuild, I get errors:

Command:

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

Errors:

error : Can not find the installation for VS SDK.
error MSB4018: The "FindVsSDKInstallation" task fail ed unexpectedly.
error MSB4018: System.ArgumentNullException: Value can not be null.
error MSB4018: Parameter name: path1
error MSB4018: at System.IO.Path.Combine(String pat h1, String path2)
error MSB4028: The "FindVsSDKInstallation" task's ou tputs could not be retrieved from the "IncludesPath" parameter. Value cannot be null.
error MSB4028: Parameter name: path1

All activities are performed on my local Windows 7, with VS2012 and SDK installed.

I was looking for solution on the Web and I have found the following topic: FindVsSDKInstallation task fails on the build box. There is said that such a project should be compiled for "x86" platform, because devenv.exe process is 32-bit. So I change a Platform Target property from Project Properties to "x86" (for "Debug" mode). The result is the same - project is built successfully in VS but not in MsBuild.

Why VS2012 Package project is properly built by using VS, but MsBuild fails? How should I run MsBuild to build it successfully?

回答1:

First, you need to use a visual studio command prompt, or call the vsvars batch file e.g. "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\vsvars32.bat"
Second, the link you gave also says

"I think setting the "VsSDKInstall" environment variable should work too"

There's a related post here