为什么我会收到错误"目标GatherAllFilesToPublish不存在"?

Joe*_*Joe 71 azure visual-studio-2010-sp1

我最近为Visual Studio 2010 Service Pack 1安装了新的Azure开发工具.每当我尝试发布现有网站时(使用文件系统部署),我都会收到以下错误:

项目中不存在目标"GatherAllFilesToPublish".

谁能告诉我我失踪了什么?

谢谢

Say*_*imi 82

伙计们,我非常抱歉你遇到了这个问题.

我想我知道问题是什么.安装Azure SDK位时,它会安装一些VS Web发布更新.其中一个更新C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets中的文件.根据我们的设置如何定义,如果该文件有更新的时间戳(无论出于何种原因),那么当您安装新组件时,文件不会更新.

要解决此问题,您应该可以按照以下步骤操作:

你可以尝试一下,让我知道它是否有效?

  • 应用此修补程序后,为我工作,关闭Visual Studio并重新打开它以使其生效. (4认同)
  • 我没有更改Microsoft.WebApplication.targets,但HotFix对我有用. (2认同)
  • 对我来说,即使关闭后,VS也会说KB2591016不适用,或被您计算机上的其他条件阻止 (2认同)

Ema*_*chi 59

我有这个问题,并通过添加:

<Target Name="GatherAllFilesToPublish">
</Target>
Run Code Online (Sandbox Code Playgroud)

到项目文件.我仍然不知道发生了什么.

  • 我试过了.错误消失但所有.cs文件也已发布.我估计这是因为你只添加一个存根.这个答案不是根本问题的解决方案,它是一种解决方法. (6认同)
  • 为我工作.确保在添加目标时不应对其进行注释. (2认同)
  • 这也为我解决了问题。为了让大家明白,要实现这一点,您需要在 Visual Studio 中右键单击项目(不是解决方案),选择“卸载项目”,然后再次右键单击它并选择“编辑 &lt;项目名称&gt;”,然后将此 &lt;Target ....&gt; 传递到文件中并保存,关闭文件,然后再次右键单击它并选择“重新加载项目”。然后再次测试您的发布,看看它是否有效 (2认同)

Phi*_*yNJ 45

这对我来说很有用 - 收集所有文件以发布错误

  1. 右键单击该项目,然后选择编辑(项目名称).csproj.(例如在记事本中编辑)
  2. 寻找 <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  3. 在行上方添加以下内容.

    <PropertyGroup> 
     <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">13.0</VisualStudioVersion>
     <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
    </PropertyGroup>
    
    Run Code Online (Sandbox Code Playgroud)
  4. 保存并重新加载项目.

  • 这为我修好了.VS2013中的ASP.NET MVC项目 (3认同)
  • 我在全新安装的Windows上安装了100%全新的VS2015,遇到了这个错误.这篇文章为我修好了,除非您必须将13.0更改为14.0.非常感谢@PhillyNJ! (3认同)
  • 它做了.我正在使用VS 2013. (2认同)

Edu*_*añó 9

删除这些安装解决了我的问题:

  • Microsoft Web Publish - Visual Web Developer Express 2010
  • Microsoft Web Publish - Visual Studio 2010

参考


Joe*_*oey 6

VS2017 同样的问题。你可以试试这个,它对我有用。

  1. 卸载项目并编辑 csproj 文件
  2. 搜索关键字“WebApplication.targets”

     <Import Project="...\WebApplications\Microsoft.WebApplication.targets" ... >
    
    Run Code Online (Sandbox Code Playgroud)

    注释或删除此行。(根据“条件”可能有两行)

  3. 保存并重新加载项目

这一步会提示你安装一些500M左右的包...

之后,重新加载项目,然后它就可以工作了!

我想我只是在安装 VS 2017 时错过了一些组件。

我还注意到 VS2017 中的 MSBuild 路径完全不同,但这可能与问题无关,因为它在 csproj 文件中使用了相对路径。


Bud*_*y J 6

我在VS 2017中遇到了这个问题,我尝试按照此处的建议手动更改csproj文件,但没有建议的修复程序对我有用。我遇到了这个nuget包。安装它对我有用。

MSBuild.Microsoft.VisualStudio.Web.targets


Ras*_*hid 5

当我想将ASP.Net应用程序发布到Windows Azure时,我遇到了类似的问题.经过多次试验和错误,最终这个解决方案对我有用.这不需要任何文件重命名或任何安装/重新安装修补程序/补丁.这是你要做的:

在Wordpad/Notepad中打开ASP.Net项目文件(.csproj),找到与此类似的行:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(Solutions.VSVersion)' == '8.0'" />
Run Code Online (Sandbox Code Playgroud)

将其替换为以下给出的线:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
Run Code Online (Sandbox Code Playgroud)


fdk*_*fsf 5

我遇到了同样的问题:我在 中创建了项目VS 2010,并且必须从 中发布VS 2019。这里的解决方案都不适合我,我已经解决这个问题大约一天了。

这个链接有什么作用:http://www.dotnetxp.com/visual-studio-error-publish-target-gatherallfilestopublish-not-exist-project/

这就是我所做的:

** 卸载有问题的项目。

** 在文本编辑器中打开 csproj 文件。

** 找到这一行

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
Run Code Online (Sandbox Code Playgroud)

并用这个替换。我使用它是16.0因为这是我正在使用的版本(vs2019)。

<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">16.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v16.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
Run Code Online (Sandbox Code Playgroud)

** 重新加载项目并发布。

工作起来就像一个魅力。