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



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




целевой объект "GatherAllFilesToPublish" не существует в проекте.




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



спасибо

692   18  

18 ответов:

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

Я думаю, что я знаю, в чем дело. При установке пакета SDK для Azure биты, он устанавливает некоторые против веб-публикации обновлений. Один из этих обновлений файла по адресу C:\Program файлы (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.Значение webapplication.цели. В зависимости от того, как определяется наша установка если этот файл имеет обновленную метку времени (по какой-либо причине), то при установке нового компонента файл не будет получить обновление.

чтобы решить эту проблему, вы должны быть в состоянии выполнить следующие действия:

  • переименовать Microsoft.Значение webapplication.целей в Microsoft.Значение webapplication.цели.бак
  • установка / ремонт с помощью exe в http://go.microsoft.com/fwlink/?LinkId=253458

вы можете попробовать его и дайте мне знать, если это работает или нет?

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

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

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

это сработало для меня исправить - собрать все файлы для публикации ошибка

  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>
    
  4. сохранить и перезагрузить проект.

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

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

ссылка

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

откройте ASP.Net файл проекта (.csproj) в Wordpad / Notepad и найдите строку, похожую на эту:

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

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

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

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

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

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

фон: у меня был старый проект, который я обновил до 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 параметр свойства, который отсутствовал в моем файле проекта, по какой-либо причине.

Я добавил его в

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

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

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

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

отлично работает сейчас

У меня такая же проблема в 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" />

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

13.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) Сохраните и перезагрузите проект.

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

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

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

та же проблема с VS2017. Вы можете попробовать это, это сработало для меня.

  1. выгрузите проект и отредактируйте файл csproj
  2. поиск по ключевому слову " WebApplication.цели"

     <Import Project="...\WebApplications\Microsoft.WebApplication.targets" ... >
    

    прокомментируйте или удалите эту строку.(может быть, две строки в зависимости от "условия")

  3. сохранить и перезагрузить проект

на этом шаге вам будет предложено установить какой-либо пакет около 500M...

после этого перезагрузите проект, тогда это работает!

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

также я замечаю, что путь MSBuild совсем другой в VS2017, но, возможно, это не связано с проблемой, потому что он использует относительный путь в файле csproj..

решение Sayed не работает в моем проекте, который был обновлен с помощью 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" />

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

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

С Уважением,

Мин Сюй.

та же проблема, которую я исправил. Пожалуйста, проверьте, если некоторые файлы отсутствуют в решении. если вы столкнулись с ошибкой типа Error - The target "GatherAllFilesToPublish" does not exist in the project. тогда просто откройте .proj файл и удалить эту строку <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />

вы получаете фактическую ошибку или эти отсутствующие файлы в решение

Я столкнулся с этой проблемой с VS 2017, и я попытался вручную изменить файл csproj, как предложено здесь, и ни одно из предложенных исправлений не сработало для меня. Я наткнулся на этот пакет NuGet. Установка его работала для меня.

MSBuild.Microsoft.VisualStudio.Сеть.цели

Comments

    Ничего не найдено.