Visual Studio Online生成失败,缺少System.Web.Http dll

时间:2015-10-09 07:18:55

标签: .net asp.net-mvc msbuild azure-devops nuget-package-restore

我已经成功地通过Visual Studio Online的构建管道部署了基于ASP.Net MVC Azure的网站数周。然后我添加了一个ApiController类,Visual Studio安装了一些相关的NuGet包。现在,当我签入并且构建开始时,由于缺少System.Web.Http dll而导致失败。

我尝试重新安装NuGet包,并将缺少的dll标记为“Copy Local”。仍然没有快乐。

构建步骤首先报告警告:

  

C:\ Program Files   (x86)\ MSBuild \ 14.0 \ bin \ Microsoft.Common.CurrentVersion.targets(1819,   5)无法解析此引用。无法找到程序集   “System.Web.Http,Version = 5.2.3.0,Culture = neutral,   PublicKeyToken = 31bf3856ad364e35,processorArchitecture = MSIL“。检查到   确保程序集存在于磁盘上。如果需要此引用   通过您的代码,您可能会遇到编译错误。

然后它会报告许多错误并失败:

  

[Solution Name] [Website Name] \ App_Start \ WebApiConfig.cs(1,18)   类型或命名空间名称'Http'在命名空间中不存在   'System.Web'(您是否缺少程序集引用?)

我正在使用Visual Studio 2015 RC和.Net 4.6(虽然下降到v4.5.2仍会产生错误)。

现在我必须手动发布此内容。有人有任何想法吗?

2 个答案:

答案 0 :(得分:1)

首先,请确保可以在.proj文件中找到以下内容:

<Reference Include="System.Web.Http, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll</HintPath>
  <Private>True</Private>
</Reference>

其次,请在Visual Studio Build步骤中选中Restore NuGet Packages复选框。 (假设你正在使用build vNext) enter image description here

答案 1 :(得分:0)

我发现Visual Studio Online正在寻找源代码存储库中的nuget包引用。通过检查丢失的dll,我能够解决这些错误。

例如:

\包\ Microsoft.AspNet.WebApi.Core.5.2.3 \ lib中\ net45 \ System.Web.Http.dll