试图在构建服务器上构建我的项目给我以下错误:
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解决了这个问题。但是现在我从头开始安装一个新的服务器,我想知道是否有更好的解决方案来解决这个问题。
解决方案是在构建服务器代理上安装可重新分发的包。它可以通过多种方式实现,下面将介绍其中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
如果你正在使用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"* .
希望这能帮助到一些人。
解决方案是在构建服务器代理上安装可重新分发的包。它可以通过多种方式实现,下面将介绍其中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
我的解决方案是这里几个答案的混合。
我检查了构建服务器,Windows7/NET4.0 SDK已经安装,所以我确实找到了路径:
C:\Program Files (x86)\MSBuild\Microsoft\ VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets
但是,在这一行:
<进口项目=”(MSBuildExtensionsPath美元)\ Microsoft \ VisualStudio v9 WebApplication 0 WebApplications \ Microsoft。很明显" - >
$(MSBuildExtensionsPath)扩展到C:\Program Files\MSBuild,其中没有路径。
因此,我所做的就是创建一个符号链接,使用下面的命令:
mklink /J "C:\Program Files\MSBuild\Microsoft\VisualStudio" "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio"
通过这种方式,$(MSBuildExtensionsPath)扩展到一个有效的路径,应用程序本身不需要更改,只需要在构建服务器中更改(也许可以在每个构建中创建符号链接,以确保这一步不会丢失并被“记录”)。