Почему я получаю сообщение об ошибке "Цель GatherAllFilesToPublish не существует"?

Недавно я установил новые средства разработки Azure для пакета обновления 1 для Visual Studio 2010. Каждый раз, когда я пытаюсь опубликовать существующий веб-сайт (используя развертывание файловой системы), я получаю следующую ошибку:

Цель проекта "GatherAllFilesToPublish" не существует в проекте.

Может ли кто-нибудь сказать мне, что мне не хватает?

Спасибо

Ответ 1

Ребята Мне очень жаль, что вы столкнулись с этой проблемой.

Я думаю, что знаю, в чем проблема. Когда вы устанавливаете биты Azure SDK, он устанавливает некоторые обновления VS Web Publish. Один из них обновляет файл в C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets. На основе того, как определяется наша установка, если этот файл имеет обновленную временную метку (по какой-либо причине), то при установке нового компонента файл не обновляется.

Чтобы решить эту проблему, вы должны выполнить следующие шаги:

Вы можете попробовать и сообщить мне, работает ли это или нет?

Ответ 2

У меня была эта проблема, и она была исправлена ​​добавлением:

<Target Name="GatherAllFilesToPublish">
</Target>

в файл проекта. Я до сих пор не знаю, что происходит.

Ответ 3

Это сработало для меня fix - собрать все файлы, чтобы опубликовать сообщение об ошибке

  • Щелкните правой кнопкой мыши проект и выберите "Изменить" (название проекта).csproj. (например, редактировать в блокноте)
  • Ищите <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  • Добавьте строку выше.

    <PropertyGroup> 
     <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">13.0</VisualStudioVersion>
     <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
    </PropertyGroup>
    
  • Сохранить и перезагрузить проект.

Ответ 4

Удаление этих установок решило проблему для меня:

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

Ссылка

Ответ 5

У меня была аналогичная проблема, когда я хотел опубликовать приложение ASP.Net для Windows Azure. После многих проб и ошибок, наконец, это решение работало для меня. Это не требует переименования файлов или любой установки/переустановки исправлений/исправлений. Вот что вам нужно сделать:

Откройте файл проекта ASP.Net(.csproj) в Wordpad/Блокнот и найдите строку, которая выглядит примерно так:

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

Замените его строкой, как показано ниже:

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

Ответ 6

У меня была аналогичная проблема и разрешил ее с помощью шагов, предоставленных Sayed.

Переименованный файл был в каталоге v10.0.

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets.

Оригинальный файл, который был там, был датирован 18 января 2011 года, после переименования его с расширением .bak, а затем переустановил KB2591016, публикация, похоже, снова работает. Новая дата файла Microsoft.WebApplication.targets теперь 11 августа 2011 года.

Ответ 7

Я понимаю это в старом вопросе, но недавно столкнулся с ним, и вот как я его решил.

Фон: у меня был старый проект, который я обновил до VS studio 13. Похоже, что файл проекта не был обновлен должным образом.

Есть ссылки на VS v10.0, в файле csproj, но я запускаю 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)' != ''" />

Теперь моя публикация в файловой системе работает!

Ответ 8

Я боролся с той же проблемой с Visual Studio 2013 (и 2015).

Важным решением для меня было добавить параметр свойства VSToolsPath, отсутствующий в моем файле проекта, по какой-либо причине.

Я добавил это в директиву <PropertyGroup>:

<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>

В качестве побочного примечания: Мой файл проекта также ссылается на версию файла Microsoft.WebApplication.targets версии 10.0, но, похоже, все в порядке.

Ответ 9

У меня была такая же ошибка. Как-то эта строка отсутствовала.

<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />

Добавил его чуть ниже

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

Прекрасно работает сейчас

Ответ 10

У меня такая же проблема в VS2013, решение, которое я нашел, было путем создания нового проекта пустого веб-приложения, который может копировать следующие строки из него в мой старый проект веб-сайта: Вверху:

<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" />

Ответ 11

Сказанное решение не работало в моем проекте, который был обновлен с использованием VS2012. Но этот работал

Ответ 12

При редактировании в 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" />

Ответ 13

Щелкните правой кнопкой мыши проект и выберите "Изменить" (название проекта).csproj. (например, редактировать в блокноте) Искать Добавьте строку выше.

 13,0  $ (MSBuildExtensionsPath32)\Microsoft\VisualStudio\V $(VisualStudioVersion) Сохранить и перезагрузить проект.

Это действительно работает для меня, спасибо

Ответ 14

Поскольку проблема не может быть воспроизведена на моей стороне, я хотел бы предложить вам попробовать переустановить SDK.

Прежде чем устанавливать новый, попробуйте полностью удалить старый SDK.

С наилучшими пожеланиями,

Ming Xu.

Ответ 15

Для Visual Studio 2017 - он должен быть добавлен после блока в файле .csproj, используйте блокнот и найдите ".targets", чтобы найти его...

Я создал новый проект 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>