与vs2017的MSBuild.Community.Tasks问题

时间:2017-04-07 15:15:04

标签: msbuild visual-studio-2017

人们我在2012年首次创建了一系列服务,这些服务多年来与Vs2010,Vs2013和Vs无缝构建。 Vs2015。

当我尝试用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之间有什么变化?
我需要做些什么来解决这个问题?

3 个答案:

答案 0 :(得分:3)

明确设置MSBuildCommunityTasksPath属性可以解决问题。

我在build.proj文件的顶部执行此操作。

(由于历史原因,我们将社区建设任务保留在我们的仓库中,这就是为什么它设置在主干下的位置)

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

答案 1 :(得分:2)

扩展名很可能安装在&#39; C:\ Program Files(x86)\ MSBuild&#39;中。所以我目前在我的项目中明确设置变量作为解决方法。

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

答案 2 :(得分:0)

在VS2017单个组件部分中安装.Net Framework 3.5开发工具修复了我的构建。