试图在构建服务器上构建我的项目给我以下错误:

Microsoft (R) Build Engine Version 4.0.30319.1
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

几个月前,我通过在Build Server上安装Visual Studio 2010解决了这个问题。但是现在我从头开始安装一个新的服务器,我想知道是否有更好的解决方案来解决这个问题。


当前回答

我尝试了很多解决方案,但最后这个答案对我有用:https://stackoverflow.com/a/19826448/431522

它基本上需要从MSBuild目录调用MSBuild,而不是Visual Studio目录。

我还将MSBuild目录添加到我的路径中,以使脚本更容易编码。

其他回答

如果没有安装VS,则不支持构建和发布wap。也就是说,如果你真的不想安装VS,那么你需要复制%ProgramFiles32%\MSBuild\Microsoft\下的所有文件。

您还需要安装Web部署工具。我想就是这样了。

你也可以使用NuGet包MSBuild.Microsoft.VisualStudio.Web。目标,在你的Visual Studio项目中引用它们,然后按照Andriy K的建议更改你的引用。

如果你正在使用MSBuild,就像在构建服务器的情况下一样,对我来说有用的是:

修改如下:

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />

to:

<Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />

我的Msbuild命令是:*“C:\Program Files (x86)\ Msbuild \14.0\Bin\ Msbuild .exe”方案。sln /p:Configuration=Debug /p:Platform="任意CPU"* .

希望这能帮助到一些人。

After installation of MSBuild tools from Microsoft, define the MSBuild path in the environment variable, so that it can be run from any path. Edit the .csproj file in any notepad editor such as notepad++, and comment the Check for the following elements, --> Make sure you use import only once, choose whichever works. Make sure you have the following folder exists on the drive, "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0" or whichever version is referenced by MSBuild target at "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets" From the command prompt, run the following command, to check

C: > msbuild“C: \ \ DotnetCi。/p:Configuration=Release /p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=false

根据需要选择/p开关,请参考此处输入链接说明 在这里输入图像描述

根据这篇文章,你可以简单地下载Microsoft Visual Studio 2010 Shell (Integrated) Redistributable Package并安装目标。

这避免了在构建服务器上安装Visual Studio的需要。

我刚刚尝试了这一点,现在可以验证它的工作:

之前:

错误MSB4019:导入项目“C:\Program Files . 微软(x86) \ [\ \ VisualStudio \ v10.0 \ WebApplications \ Microsoft.WebApplication.targets” 没有找到。确认声明中的路径为 正确,并且该文件存在于磁盘上。

安装后:

(构建正确)

显然,这是比在构建服务器上安装Visual Studio更好的解决方案。