Web部署任务失败。 (Unknown ProviderOption:DefiningProjectFullPath。已知的ProviderOptions是:skipInvalid。)

时间:2014-07-24 12:20:57

标签: iis visual-studio-2013

我尝试从Visual Studio 2013发布一个Web项目,但是使用Web部署继续收到此错误。

Web部署任务失败。未知的ProviderOption:DefiningProjectFullPath。已知的ProviderOptions是:skipInvalid。

6 个答案:

答案 0 :(得分:5)

在为Visual Studio 2013安装更新4后,我遇到了同样的问题。

<强>解决方案: 在构建服务器上安装Visual Studio更新。

答案 1 :(得分:3)

我遇到了同样的错误。

安装TFS RM Update2后出现此错误。 你需要做的是替换&#34; C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ Web&#34;的内容。在您的构建服务器上,开发板上具有相同文件夹的内容。

无论如何,这对我有用。

答案 2 :(得分:3)

当我更新构建服务器以使用新的roslyn编译器(使用c#6功能)和安装required stuff(.NET 4.6 Framework,Microsoft Build Tools 2015,.NET)后,我遇到了这个问题Framework 4.6 target Pack)当我尝试发布项目(C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets Msbuild目标)时,我收到错误 "Package"

所以我添加了/p:VisualStudioVersion=12.0参数MSBuild命令进行发布,以便从 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets 获取目标,然后我收到了有问题的错误(Web deployment task failed. (Unknown ProviderOption:DefiningProjectFullPath. Known ProviderOptions are:skipInvalid.)

我有两个解决这个问题的方法:

  1. 从本地计算机复制C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets以构建服务器,并从MSBuild命令arguments中删除/p:VisualStudioVersion=12.0参数。默认情况下,新的MSBuild(位于C:\Program Files (x86)\MSBuild\14.0\bin\amd64\MSBuild.exe')将VisualStudioVersion设置为14.0,并将使用适用于新编译器的新MSBuild目标。
  2. 如果您无法访问构建服务器,请安装MSBuild.Microsoft.VisualStudio.Web NuGet包(您需要将其安装到解决方案中的至少一个项目中),然后从中删除此/p:VisualStudioVersion=12.0命令参数MSBuild并将以下文本添加到无法发布的项目的.csproj文件中:
  3. <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != '' And Exists('$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets')" />
    <Import Project="..\..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets" Condition="('$(VSToolsPath)' == '' Or !Exists('$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets')) And Exists('..\..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets')" />  
    

    这将首先检查构建服务器上是否有Microsoft.WebApplication.targets(在...VisualStudio\v14.0\目录中),如果没有,它将从解决方案中导入一个(包含在packages目录中)

    如果它不能工作,请检查你的.csproj文件中是否有这个:

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

答案 3 :(得分:1)

在Visual Studio中,转到工具 - &gt;扩展程序和更新 - &gt;更新 - &gt;产品更新

安装最新的Azure SDK(即使您没有使用Azure ,)。

Source

另外,我安装了MSBuild Targets NuGet,用于VS2012目标。我为我的VS版本(2013)安装了版本,一切都恢复正常。

答案 4 :(得分:0)

我有Visual Studio 2013,但昨天我也安装了Visual Studio 2015,并在尝试在VS 2013中发布网站时给出了同样的错误。我解决了这个问题,只是运行了visual studio 2013的更新5

答案 5 :(得分:-1)

安装2015预览后,我在VS 2013中遇到了这个问题。

我的解决方案是仅从VS 2015发布......