Visual Studio 2015 中的 Azure Web 作业 - 部署不工作,出现错误 "target "MSDeployPublish“项目中不存在。”

Azure Web Job in Visual Studio 2015 - deploy not working with error "target "MSDeployPublish" does not exist in the project."

我使用 Visual Studio 2015 和 azure sdk 2.7.1。我创建了 azure web 作业。当我 运行 部署时出现错误:

目标 "MSDeployPublish" 在项目中不存在。

我在 Visual Studio 2013 年创建了 Web 作业 - 部署成功。我比较了这两个项目(2015 年和 2013 年)——2013 年有这样的代码:

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

我在 2015 年将此代码放入我的项目中,但部署不起作用。我看到了
这个 question,但它对我不起作用。

使用 VS2015,在安装 Microsoft.Web.WebJobs.Publish NuGet 包时,我在包控制台中注意到 install.ps1 powershell 脚本由于缺少执行权限而抛出错误。经检查,该脚本似乎是要在我要安装到的项目的 .csproj 中添加导入引用。将以下行添加到我的 .csproj 文件中可以解决问题并为我修复上述错误;

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

注意:您的软件包版本可能不同,在这种情况下,将 1.0.6 替换为与您安装的软件包匹配的任何版本。

注意:您的解决方案设置可能不同,在这种情况下,请确保 ..\packages 文件夹的路径正确。

注意:当您 运行 VS 没有管理员权限时会出现此问题。

我运行 visual studio 2015 具有管理员权限。这对我有用。

我只需添加对上述 Microsoft.Web.WebJobs.Publish NuGet 包的引用即可解决此问题。在我的案例中,无需对 .csproj 文件进行额外修改。我假设这是因为自问题首次发布以来 VS 2015 工具的改进 ;)

我不得不删除 Nuget,以管理员权限重新启动,然后再次添加它以解决问题。

只是想让你知道简单的软件包更新对我有用。

我在一个带有 nuget 包的 project.json 的项目中遇到了这个错误。

当我删除 project.json 并使用 packages.config 时一切正常。

请注意,我在尝试此操作之前确实为 Windows PowerShell 设置了 ExecutionPolicy,(see solution of @Jon Crowell),这可能也是必要的。

如果有人找到解决此问题的方法 project.json 请告诉我!

这对我有用

第 1 步:运行Visual studio 作为管理员

第 2 步:确保在 .csProj 文件中有导入行(在前面的评论中提到过)

第 3 步:删除 Webjob.Publish.Settings.JSON 文件(因为它显示错误)和发布配置文件

第 4 步:部署为 Azure Web 作业