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

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解决了这个问题。但是现在我从头开始安装一个新的服务器,我想知道是否有更好的解决方案来解决这个问题。


当前回答

我通过添加来解决这个问题 / p: VCTargetsPath = " C: \ Program Files \ MSBuild \ Microsoft.Cpp \ v4.0 \ V120” 成 使用MSBuild >命令行参数构建Visual Studio项目或解决方案

其他回答

我在MS connect上找到了这个:

是的,您需要安装Visual Studio 2010在你的构建机器上进行构建 数据库项目。这样做确实 不需要额外的许可证 Visual Studio。

所以,这是我目前唯一的选择。

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

我通过添加来解决这个问题 / p: VCTargetsPath = " C: \ Program Files \ MSBuild \ Microsoft.Cpp \ v4.0 \ V120” 成 使用MSBuild >命令行参数构建Visual Studio项目或解决方案

解决方案是在构建服务器代理上安装可重新分发的包。它可以通过多种方式实现,下面将介绍其中3种方式。挑一个最适合你的。

使用UI安装程序

这是原来的答案

现在,在2017年,你可以用MSBuildTools安装WebApplication重定向。只需转到这个页面,下载MSBuild 2017工具,在安装时单击Web开发构建工具,即可安装这些目标:

这将导致默认情况下在C:\Program Files (x86)\Microsoft VisualStudio\ 2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications中安装缺失的库

使用命令行

免责声明:我没有测试过以下任何建议

正如@PaulHicks和@WaiHaLee在评论中建议的那样,它也可以从CLI以无头模式(没有ui)安装,这实际上可能是解决移除服务器问题的更好方法。

解决方案A -使用包管理器(choco)

choco install visualstudio2017-workload-webbuildtools

解决方案B -运行安装程序在无头模式 请注意,这是在原始答案中建议使用的相同安装程序

vs_BuildTools.exe --add Microsoft.VisualStudio.Workload.WebBuildTools --passive

如果你试图使用VSTS部署一个项目,那么问题可能与检查“托管的Windows容器”选项而不是“托管的VS2017”(或18等)有关: