为什么我得到错误“目标GatherAllFilesToPublish不存在”?
我最近安装了用于Visual Studio 2010 Service Pack 1的新的Azure开发工具。每次尝试发布现有网站(使用文件系统部署)时,都会出现以下错误:
项目中不存在目标“GatherAllFilesToPublish”。
谁能告诉我我失踪了什么?
谢谢
伙计们,我非常抱歉,你们遇到了这个问题。
我想我知道问题是什么。 当您安装Azure SDK位时,它将安装一些VS Web发布更新。 其中一个更新文件在C:\ Program Files文件(x86)\ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ WebApplications \ Microsoft.WebApplication.targets。 根据我们的设置如何定义,如果该文件有一个更新的时间戳(无论什么原因),那么当您安装新的组件文件不会得到更新。
要解决这个问题,你应该可以按照下面的步骤进行:
- 将Microsoft.WebApplication.targets重命名为Microsoft.WebApplication.targets.bak
- 使用该exe安装/修复在http://go.microsoft.com/fwlink/?LinkId=253458
你可以试试看,让我知道如果它的工作与否?
我遇到了这个问题,并且通过添加以下内容来解决问题
<Target Name="GatherAllFilesToPublish"> </Target>
到项目文件。 我仍然不知道发生了什么事情。
这对我工作修复 – 收集所有文件发布错误
- 右键单击该项目并select编辑(项目名称).csproj。 (例如,在记事本中编辑)
- 查找
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-
在行上添加以下内容。
<PropertyGroup> <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">13.0</VisualStudioVersion> <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> </PropertyGroup>
-
保存并重新加载项目。
删除这些安装解决了我的问题:
- Microsoft Web发布 – Visual Web Developer Express 2010
- Microsoft Web Publish – Visual Studio 2010
参考
当我想将我的ASP.Net应用程序发布到Windows Azure时,我遇到了类似的问题。 经过多次反复试验, 这个解决scheme为我工作。 这不需要重命名文件或安装/重新安装修补程序/修补程序。 这是你必须做的:
在写字板/记事本中打开ASP.Net项目文件(.csproj),并find类似于这样的行:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(Solutions.VSVersion)' == '8.0'" />
用下面给出的行replace它:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
我遇到了类似的问题,并使用Sayed提供的步骤解决了这个问题。
虽然我重命名的文件在v10.0目录中。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets.
原来的文件是在2011年1月18日,在用.bak扩展名重新命名后重新安装了KB2591016后,发布似乎又重新开始了。 文件Microsoft.WebApplication.targets的新date现在是2011年8月11日。
我在一个古老的问题中意识到这一点,但我最近遇到了这个问题,这就是我如何解决这个问题。
背景:我有一个旧的项目,我升级到VS studio 13.它看起来像项目文件没有正确升级。
在csproj文件中有VS v10.0的引用,但是我运行的是VS 13,它真的是“v12.0”。
所以我告诉csproj文件使用“v12.0”文件夹,而不是“v10.0”文件夹。
这是我的:
<PropertyGroup> <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> </PropertyGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="$(SolutionDir)\..\BuildTools\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" /> <Import Project="$(SolutionDir)\..\BuildTools\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
这是我改变成的:
<PropertyGroup> <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">12.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)' != ''" />
现在我发布到文件系统的作品!
我一直在与Visual Studio 2013(和2015)的同样的问题挣扎。
对我来说,至关重要的一点是添加VSToolsPath
属性设置,这是我的项目文件中不存在的,无论出于何种原因。
我将它添加到<PropertyGroup>
指令中:
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
作为一个方面说明:我的项目文件也引用了Microsoft.WebApplication.targets
文件的v10.0版本,但似乎没关系。
我有同样的错误。 不知何故,这条线缺失。
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
在下面添加它
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
现在工作正常
我在VS2013有同样的问题,我find的解决scheme是通过创build一个新的空的Web应用程序项目可以从它复制到我的旧网站项目的以下几行:在顶部:
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> <PropertyGroup> <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.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\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
Sayed的解决scheme在使用VS2012进行升级的项目中不起作用。 但是, 这工作
如果在VS2012(Visual Studio 2012)中编辑VS2010项目,试试这个。 编辑csproj文件来自:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
并改为:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" />
右键单击该项目并select编辑(项目名称).csproj。 (例如,在记事本中编辑)寻找在行上面添加以下内容。
13.0 $(MSBuildExtensionsPath32)\ Microsoft \ VisualStudio \ v $(VisualStudioVersion)保存并重新加载项目。
这真的对我很有用,谢谢
由于这个问题不能在我身上复制,我想build议你尝试重新安装SDK。
在安装新的SDK之前,请尝试彻底删除旧的SDK。
最好的祝福,
许明
对于Visual Studio 2017 – 它应该添加在.csproj文件中的块之后,使用记事本并查找“.targets”以find它…
我创build了一个新的VS 2017项目,这是为我工作(没有任何警告):
<PropertyGroup> <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.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\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" /> <Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'"> <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" /> </Target>