错误:目标“GatherAllFilesToPublish”在项目中不存在,但位于 v10.5 文件夹中

Error: The Target "GatherAllFilesToPublish" does not exist in the project, but is in v10.5 folder

提问人:scott-pascoe 提问时间:12/25/2012 最后编辑:Communityscott-pascoe 更新时间:3/1/2014 访问量:8574

问:

我一直在这个问题上兜兜转转。我有一个在 VS2010 SP1 中构建的 ASP.NET MVC 3 Web 应用程序。当我尝试发布到本地文件系统时,出现错误

目标“GatherAllFilesToPublish”在项目中不存在。

它失败了。我遵循了为什么出现错误“目标 GatherAllFilesToPublish 不存在”中描述的答案?但它不能解决我的问题。

我已经安装了适用于 VS2010 的 Azure SDK 1.8(2012 年 10 月),试图让我的系统恢复工作。通过此安装,我在 MSBuild 树中看到以下文件/文件夹。

Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Targets,日期为 2011 年 1 月 18 日。

此文件未提及“GatherAllFilesToPublish”

安装 Azure SDK 后,我有另一个文件/文件夹:

Microsoft\VisualStudio\v10.5\Web\Microsoft.Web.Publishing.Targets,日期为 2012 年 9 月 27 日。

此文件包含“GatherAllFilesToPublish”目标。

显然,我在 VS2010 中的发布函数没有使用 v10.5 文件夹的目标。有没有人对解决这个问题有任何建议?

谢谢

可视化 Studio-2010 MSBUILD-WPP

评论

0赞 roadsunknown 12/28/2012
这帮助了我:stackoverflow.com/questions/10989051/......
0赞 scott-pascoe 12/28/2012
@roadsunknown,是的,我在原来的问题中提到了这个问题。我的情况与这种情况不符。谢谢。

答:

3赞 scott-pascoe 12/25/2012 #1

答案是......

在过去的某个时候,该项目已被编辑为包含 msbuild 文件夹的本地副本,而我已经忘记了它。我使用 sysinternals 的 procmon 来查找文件访问权限,它只在我的项目下引用了 msbuild。

这样,我重命名了文件夹,编辑了 csproj 文件以删除 MSBuildExtensionsPath32 的本地化引用,然后重新加载了项目。

我能够成功发布我的应用程序。

评论

1赞 Mark Allen 4/5/2014
遇到了这个问题,这是因为我在 Visual Studio 12.0(又名 Visual Studio 2013)中加载 Visual Studio 10.0 时有一些剩余的东西引用了 Visual Studio 10.0。卸载我的项目,右键单击/编辑项目文件,找到它,将 10.0 切换到 12.0,重新加载它,然后发布。