只是在这里抛出这个以防别人再次面对这个问题。看起来,当您通过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