2017-04-07 32 views
7

夥計我有一套服務於2012年首次創建,這些服務已經與Vs2010,Vs2013 & Vs2015無縫連接。MSBuild.Community.Tasks與vs2017問題

當我嘗試建立與Vs2017我得到

MSBuild.Community.Tasks.Attrib任務無法從組件 組裝生活在C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\MSBuildCommunityTasks文件夾下加載,但沒有MSBuildCommunityTasks文件夾在\2017\Professional\MSBuild文件夾下。

下面是完整的錯誤

C:\working\MySolution\build\Build.proj" (default target) (1) -> 
(SetAssemblyVersion target) -> 
    C:\working\MySolution\build\Build.proj(100,5): error MSB4062: The "MSBuild.Community.Tasks.Attrib" task could not be loaded from the assembly C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\MSBuildCommunityTasks\MSBuild.Community.Tasks.dll. 
    Could not load file or assembly 'file:///C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\MSBuildCommunityTasks\MSBuild.Community.Tasks.dll' or one of its dependencies. 
    The system cannot find the file specified. Confirm that the <UsingTask> declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask. 

Vs2015和Vs2017之間是什麼改變了?
我需要做些什麼來解決這個問題?

+1

主要變化是安裝路徑。它現在嵌套在一個VS文件夾下,包括一個版本文件夾,除了獨立構建工具安裝的情況。有關發行說明,請參閱[MSBuild發行說明](https://docs.microsoft.com/zh-cn/visualstudio/msbuild/what-s-new-in-msbuild-15-0)。 您的問題可能是由於未將目標放置在正確的新位置所致。對於Azure SDK,他們的git [MSBuild問題](https://github.com/Microsoft/msbuild/issues/1888)上存在一個未解決的問題,並提供了一些有用的建議來嘗試。 –

+0

謝謝Siobhan,我會在星期一檢查一下 –

+0

你可以複製'MSBuildCommunityTasks'找到它。即將文件夾「C:\ Program Files(x86)\ MSBuild \ MSBuildCommunityTasks」複製到「C:\ Program Files文件(x86)\ Microsoft Visual Studio \ 2017 \ Community \ MSBuild」 – wal

回答

3

明確設置MSBuildCommunityTasksPath屬性會超過該問題。

我在我的build.proj文件的頂部執行此操作。

(由於歷史原因,我們保持社會的構建任務在我們的回購,這就是爲什麼它被設置爲在軀幹的位置)

<MSBuildCommunityTasksPath>$(trunk)\Ref\Build\MSBuildCommunityTasks</MSBuildCommunityTasksPath> 
1

的擴展很可能安裝在「C:\ Program Files文件( 86)\的MSBuild」。所以我目前在我的proj中明確地設置了變量作爲解決方法。

<MSBuildExtensionsPath>C:\Program Files (x86)\MSBuild</MSBuildExtensionsPath>