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

时间:2014-05-13 14:26:27

标签: asp.net-web-api visual-studio-2013 web-deployment

我知道还有其他人提到这个问题。但我没有从一个版本的VS升级到另一个版本。我目前正在使用VS 2013.该项目构建良好,甚至在过去成功部署。这是一个全新的应用程序。所以它不是从另一个项目继承的东西。我在哪里可以开始寻找?我可以在这里发布什么可能对你们有所帮助,希望对我有所帮助?这是一个web api 2站点。我在VS2013中使用了发布命令。

12 个答案:

答案 0 :(得分:33)

将以下行添加到我的.csproj文件似乎为我解决了同样的错误:

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

作为尝试解决问题的一部分,我还安装了 MSBuild.Microsoft.VisualStudio.Web.targets Nuget Package。但我仍然不确定是否有必要解决这个问题。

答案 1 :(得分:30)

如果使用Visual Studio 2013 / update 4使用“发布为Azure WebJob”从WebJob项目获得此MSB4057错误 - 您可能需要更新NuGet包Microsoft.Web.WebJobs.Publish

检查 MyWebJob \ packages.config ,如果版本为1.0,则需要1.02或更高版本。 从包管理器控制台运行

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

答案 2 :(得分:10)

使用VS 2013 Update 4。 Webjob项目的模板似乎存在问题,因此即使您已经安装了Microsoft.Web.WebJobs.Publish包,对webjobs.targets的引用也是错误的。

确保项目底部的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>

答案 3 :(得分:3)

刚刚重新安装了VS 2017(15.5.6),我遇到了三个WCF项目中的一个。我通过csprojs挑选了所有三个,并且发现它们之间没有区别,切割和粘贴各种进口,路径等来自工作的没有任何区别。

添加nuget包MSBuild.Microsoft.VisualStudio.Web.targets(v14.0.0.3是最新版本,即VS2015)已​​解决了问题......目前。我不敢相信这已经消失了。

答案 4 :(得分:3)

仅供参考,VS2019上的相同问题,相同的解决方案:

  • 安装nuget Microsoft.Web.WebJobs.Publish安装nuget
  • MSBuild.Microsoft.VisualStudio.Web.targets

答案 5 :(得分:2)

刚刚在VS 2015 Update 3中遇到了这个确切的错误。安装了最新的Microsoft.Web.WebJobs.Publish,我尝试了卸载并重新安装以获得良好的衡量标准。仍然无法正常工作但安装时出现错误,我第一次看不到:

  无法加载

install.ps1,因为在此系统上禁用了运行脚本。

大多数曾经运行过PowerShell脚本的人都曾经遇到过这样的问题并且易于修复(解决方案是here),但错误信息很容易错过。

答案 6 :(得分:2)

对于正在部署WebJob的用户,此错误也可能是由于缺少webjob-publish-settings.json文件(它应位于WebJob项目的Properties文件夹中)。它的结构应该是:

{
  "$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
}

(这是针对每小时预定的工作)。

答案 7 :(得分:1)

在您要发布的项目上运行以下内容(并确保您的VisualStudio以&#34运行;管理员&#34;)

install-package Microsoft.Web.WebJobs.Publish

答案 8 :(得分:0)

为了解决 Visual Studio Enterprise 2015 Update 3 的问题,我必须安装以下软件包并编辑Web作业的项目文件,如下所示。

STEP 01 :安装软件包(以管理员身份运行VS以执行脚本)

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

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

第2步:编辑WebJob项目文件(从VS卸载项目并编辑/保存.csproj然后重新加载)

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

答案 9 :(得分:0)

我在nuget包的 project.json 项目中遇到此错误。

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

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

如果有人想通过project.json找到解决方法,请告诉我!

答案 10 :(得分:0)

我在 Visual Studio 2017 中加载的项目遇到了同样的问题。它以前在不同的机器上工作,但是当我迁移到新机器时却没有。

在尝试了答案中的所有建议后(问题在StackOverflow上多次重复),我终于碰到了其他人,他们提到安装 Azure SDK for VS2015

这对于VS2017来说并不是必需的,但它解决了我的问题。我以前在我的旧机器上使用了2015,但已经切换到2017年。显然,SDK位仍然很重要。

答案 11 :(得分:0)

要添加@Uri Golani的答案,切换到新PackageReference方式而不是使用packages文件夹的传统nuget,意味着我可以删除{{ 1}}文件夹。显然,Whelp是packagescsproj文件夹(我删除了哪个文件夹)中的引用问题。我不确定如何获得对其他东西的正确引用(packages引用的缓存),所以现在,只需重新添加一个包文件夹,PackageReference和{ {1}} nuget文件夹似乎解决了这个问题。