只是把它扔在这里,以防其他人再次面临这个问题。貌似在通过NuGet安装MSBuildCommunityTasks的时候,解决方案中增加了一个.build文件夹,建议用源码签入。但是,MSBuild.Community.Tasks.targets 文件有一个<MSBuildCommunityTasksPath>
元素指向 c:\Program Files(x86) 文件夹,这是不正确的。当您使用 MSI 安装 MsBuildCommunityTasks 时,此文件夹有效。这在 Nuget 的情况下无效,它将 MsBuildCommunityTasks 安装在解决方案的包文件夹中。所以我最终修改了 .targets 文件,并改为MSBuildCommunityTasksPath
指向:
<MSBuildCommunityTasksPath>$(SolutionDir)\packages\MSBuildTasks.1.4.0.56\tools</MSBuildCommunityTasksPath>
还是没有骰子。所以最后,我只是通过 web 项目文件进行编辑,并将 MSBuildCommunityTasks 的 Import 元素更改为:
<Import Project="$(SolutionDir)\packages\MSBuildTasks.1.4.0.56\tools\MSBuild.Community.Tasks.Targets"/>
这是可行的,因为它直接告诉项目在包文件夹中查找 .Targets 文件。请注意,如果升级 MSBuildTasks 版本,则必须更改 Import 元素。我是一个 MsBuild 菜鸟,所以如果有人能告诉我如何自动化这个,那就太好了!