人们我在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之间有什么变化?
我需要做些什么来解决这个问题?
答案 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开发工具修复了我的构建。