Почему я получаю сообщение об ошибке "Цель 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>