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