嘗試在構建服務器上構建個人項目會給我如下錯誤: 服務器
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,從而解決了這個問題。 可是如今我要從頭開始安裝新服務器,我想知道是否有更好的解決方案來解決此問題。 工具
根據此處的這篇文章,您能夠簡單地下載Microsoft Visual Studio 2010 Shell(集成)可再發行軟件包,並安裝目標。 ui
這避免了在生成服務器上安裝Visual Studio的須要。 spa
我剛剛嘗試了一下,能夠驗證它是否有效: 代理
以前: code
錯誤MSB4019:找不到導入的項目「 C:\\ Program Files(x86)\\ MSBuild \\ Microsoft \\ VisualStudio \\ v10.0 \\ WebApplications \\ Microsoft.WebApplication.targets」。 確認聲明中的路徑正確,而且文件在磁盤上。 圖片
安裝後: get
[正確構建] it
顯然,這比在構建服務器上安裝Visual Studio更好。 io
UPD:從VS2017開始,構建工具中的工做負載能夠徹底消除此問題。 參見@SOReader答案 。
若是您不但願在構建服務器上進行任何修改,而且仍然但願在源代碼控制以外直接構建項目,則最好將所需的二進制文件置於源代碼控制下。 您須要修改項目文件中的imports部分,以下所示:
<Import Project="$(SolutionDir)\BuildTargets\WebApplications\Microsoft.WebApplication.targets" /> <Import Condition="false" Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
第一行是相對於解決方案目錄的新位置的實際導入。 第二個是原始行的關閉版本( Condition="false"
),該版本容許Visual Studio仍將您的項目視爲有效的Web應用程序項目(這就是VS 2010 SP1自己的技巧)。
不要忘記將C:\\Program Files (x86)\\Microsoft\\VisualStudio\\v10.0\\WebApplications
複製到源代碼管理下的BuildTargets
文件夾。
您還可使用NuGet包MSBuild.Microsoft.VisualStudio.Web.targets ,在Visual Studio項目中引用它們,而後按照Andriy K的建議更改引用。
目標:無需對構建代理進行任何更改/安裝
我在這裏採用了Lloyd的NuGet方法的混合方法,該方法基於Andrik提交的二進制依賴項解決方案。
我之因此但願可以添加新的構建代理,而沒必要使用諸如此類的項目進行預配置,是由於。
[solution]\\packages\\MSBuild.Microsoft.VisualStudio.Web.targets.nn.nnn\\tools\\VSToolsPath\\
在版本7中,我執行了如下操做。 這可能不是必需的,而且如今絕對不須要基於註釋。 請參閱下面的評論。
env.VSToolsPath
添加一個構建env.VSToolsPath
並將其設置到VSToolsPath文件夾中; 我使用了..\\packages\\MSBuild.Microsoft.VisualStudio.Web.targets.11.0.2.1\\tools\\VSToolsPath
這就是您所須要的。 只有103MB。 不要安裝全部內容