只是在這裏拋出這個以防別人再次面對這個問題。看起來,當您通過NuGet安裝MSBuildCommunityTasks時,會在解決方案中添加一個.build文件夾,建議使用源代碼簽入該解決方案。但是,MSBuild.Community.Tasks.targets文件有一個<MSBuildCommunityTasksPath>
元素,該元素指向c:\ Program Files(x86)文件夾,該文件不正確。當您使用MSI安裝MsBuildCommunityTasks時,此文件夾有效。這對於Nuget來說是無效的,它將MsBuildCommunityTasks安裝在解決方案的packages文件夾中。所以,我最後修改.targets文件,並改變MSBuildCommunityTasksPath
指:
<MSBuildCommunityTasksPath>$(SolutionDir)\packages\MSBuildTasks.1.4.0.56\tools</MSBuildCommunityTasksPath>
仍然沒有骰子。所以最後,我只是通過web工程文件編輯,並改變了導入元素MSBuildCommunityTasks這樣:
<Import Project="$(SolutionDir)\packages\MSBuildTasks.1.4.0.56\tools\MSBuild.Community.Tasks.Targets"/>
這工作,因爲它直接告訴項目,以尋找在包文件夾中的文件.Targets。請注意,如果您升級MSBuildTasks版本,則必須更改Import元素。我是MsBuild noob,所以如果有人能告訴我如何實現這個自動化,那會很棒!
這個答案非常有幫助,但是我發現NuGet放置目標文件的目錄目前是:'$(SolutionDir)\。build',所以如果上述設置不起作用,我建議更新答案設置如下:' $(SolutionDir)\。build MSBuildCommunityTasksPath>' –
providencemac
2014-01-15 18:33:06
從版本1.5開始,NuGet包中添加了'.build'文件夾的PowerShell腳本已被刪除,但'入門'指南仍然建議使用它。我提出了一個[問題](https://github.com/loresoft/msbuildtasks/issues/258)。 – Neo 2017-03-29 17:26:07