2015-10-09 86 views
1

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

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

构建步骤首先报告警告:

C:\ Program Files文件 (86)\的MSBuild \ 14.0 \ BIN \ Microsoft.Common.CurrentVersion.targets(1819年, 5)无法解析这个参考。找不到程序集 “System.Web.Http,Version = 5.2.3.0,Culture = neutral, PublicKeyToken = 31bf3856ad364e35,processorArchitecture = MSIL”。请检查 确保程序集存在磁盘上。如果您的代码需要此参考号为 ,则可能会出现编译错误。

它然后报告错误的数量和失败:

[解决方案名称] [网站名称] \ App_Start \ WebApiConfig.cs(1,18) 类型或命名空间名称HTTP'在命名空间 不存在“System.Web程序”(是否缺少程序集引用?)

我使用Visual Studio 2015年的RC和.NET 4.6(虽然下降到v4.5.2仍然产生错误)。

现在我必须手动发布这个。任何人有任何想法吗?

+0

随着更多的调查,我现在可以看到NuGet.exe恢复命令忽略了packages.config中列出的一些软件包。为什么会这样做? –

+0

在Visual Studio中本地构建它时,System.Web.Http的bin文件夹中的.DLL是什么? – Luke

+0

@ChrisArnold,你使用vNext构建?如果是这样,请查看我的回复。 –

回答

2

首先,请确保以下可在.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> 

其次,检查恢复的NuGet在Visual Studio生成步骤套餐复选框。 (假设你使用的是build vNext) enter image description here

+0

我做了卸载,然后安装包Microsoft.AspNet.WebApi.Core,它修复了csproj中的提示路径。谢谢 – Darren

+0

现在不推荐使用此选项,而使用NuGet Restore构建任务。 –