Целевой "MSDeployPublish" не существует в проекте

Я знаю, что были другие ссылки на эту проблему. Но я не обновлялся с одной версии VS на другую. В настоящее время я использую VS 2013. Проект строится отлично и даже успешно используется в прошлом. Это совершенно новое приложение. Так что это не было унаследовано от другого проекта. Где я могу начать искать? Что я могу разместить здесь, что может быть полезно для вас, ребята, надеюсь, мне помогут? Это веб-сайт api 2. Я использую команду publish в VS2013.

Ответ 1

Добавление строк ниже в мой .csproj файл, похоже, решает для меня ту же ошибку:

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

Как часть попытки решить проблему, я также установил пакет Nuget для MSBuild.Microsoft.VisualStudio.Web.targets. Но я все еще не уверен, что это необходимо для решения проблемы.

Ответ 2

Если вы получите эту ошибку MSB4057 из проекта WebJob, используя "Опубликовать как Azure WebJob" с помощью Visual Studio 2013/update 4 - вам может потребоваться обновить пакет NuGet Microsoft.Web.WebJobs.Publish

Проверьте MyWebJob\packages.config, и если версия 1.0, вам нужна версия 1.02 или выше. С консоли консоли диспетчера пакетов

 Install-Package Microsoft.Web.WebJobs.Publish -Version 1.0.2

Ответ 3

С обновлением VS 2013 4. Кажется, что возникают проблемы с шаблоном проекта Webjob, поэтому ссылка на webjobs.targets неверна, даже если вы установили пакет Microsoft.Web.WebJobs.Publish.

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

<Import Project="..\..\packages\Microsoft.Web.WebJobs.Publish.1.0.2\tools\webjobs.targets" Condition="Exists('..\..\packages\Microsoft.Web.WebJobs.Publish.1.0.2\tools\webjobs.targets')" /> 

Кроме того, лучше избегать использования ниже, поскольку он связывает вас с конкретной версией VS.

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

Ответ 4

Для тех, кто развертывает WebJob, эта ошибка также может быть вызвана отсутствующим файлом webjob-publish-settings.json (он должен быть расположен в папке "Свойства" проекта WebJob). Его структура должна быть, например:

{
  "$schema": "http://schemastore.org/schemas/json/webjob-publish-settings.json",
  "webJobName": "MyWebJob",
  "startTime": "2017-01-27T03:00:00+00:00",
  "endTime": null,
  "jobRecurrenceFrequency": "Hour",
  "interval": 1,
  "runMode": "Scheduled",
  "is_singleton": true
}

(это для почасового запланированного задания).

Ответ 5

Просто переустановив VS 2017 (15.5.6), я столкнулся с этим одним из трех проектов WCF. Я выбрал csprojs для всех трех и не мог найти никакой разницы между ними, вырезать и вставлять различные импорты, дорожки и т.д. Из работающих не имели никакого значения.

Добавление пакета nuget MSBuild.Microsoft.VisualStudio.Web.targets(v14.0.0.3 был последним, то есть VS2015) устранил проблему... на данный момент. Я не могу поверить, что это ушло навсегда, хотя.

Ответ 6

Просто натолкнулся на эту точную ошибку с обновлением VS 2015. 3. Был установлен последний Microsoft.Web.WebJobs.Publish, и я попытался установить и переустановить для хорошей меры. Все еще не работало, но была ошибка при установке, которую я не видел в первый раз:

install.ps1 не может быть загружен, так как в этой системе отключены запущенные скрипты.

Это то, что большинство тех, кто когда-либо запускал PowerShell script, столкнулись в одно и то же время и легко исправлены (решение здесь), но само сообщение об ошибке легко пропустить.

Ответ 7

Просто запустите ниже в проекте, который вы хотите опубликовать (и убедитесь, что ваш VisualStudio работает как "Администратор" )

install-package Microsoft.Web.WebJobs.Publish

Ответ 8

К вашему сведению, та же проблема на VS2019, то же решение:

  • Установите nuget Microsoft.Web.WebJobs.Publish Установите nuget
  • MSBuild.Microsoft.VisualStudio.Web.targets

Ответ 9

Чтобы исправить проблему для Visual Studio Enterprise 2015 Update 3, мне пришлось установить следующие пакеты и отредактировать файл проекта веб-задания следующим образом.

ШАГ 01: установите пакеты (запустите VS как администратор для выполнения script)

1. install-package **MSBuild.Microsoft.VisualStudio.Web.targets**

2. install-package **Microsoft.Web.WebJobs.Publish -Version 1.0.2**

STEP 02: отредактируйте файл проекта WebJob (выгрузите проект из VS и отредактируйте/сохраните .csproj, затем перезагрузите)

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

Ответ 10

Я получил эту ошибку в проекте с project.json для пакетов nuget.

Когда я удалил project.json и использовал package.config, все работало нормально.

Помните, что я установил ExecutionPolicy для Windows PowerShell, прежде чем я попробовал это, (см. решение @Jon Crowell), это также может потребоваться.

Если кто-то найдет способ решить это с помощью project.json, пожалуйста, дайте мне знать!

Ответ 11

Я столкнулся с этой же проблемой с проектом, загруженным в Visual Studio 2017. Ранее он работал на другой машине, но не тогда, когда я перешел на новую.

Попробовав все предложения в ответах здесь (вопрос несколько раз дублируется в StackOverflow), я, наконец, столкнулся с кем-то в другом месте, который упомянул об установке Azure SDK для VS2015.

Это не должно быть необходимым для VS2017, но оно решило проблему для меня. Раньше я использовал 2015 на моей старой машине, но переключился на 2017. По-видимому, бит SDK все еще имел значение.

Ответ 12

Для того, чтобы добавить к ответу по @Uri Голани, переход на новый PackageReference путь вместо с традиционным NuGet, который использует packages папки, означало, что похоже, что я мог бы удалить packages папки. Whelp, по-видимому, были теми ссылками в папке csproj в папку packages (какая папка, которую я удалил). Я не уверен, как получить правильную ссылку на что-то еще (независимо от того, к какому относится к PackageReference), поэтому пока просто повторно добавим папку пакетов с Microsoft.Bcl.Build.1.0.21 и Microsoft.Web.WebJobs.Publish.1.1.0 Папки Microsoft.Web.WebJobs.Publish.1.1.0 похоже, Microsoft.Web.WebJobs.Publish.1.1.0 это.