在azure错误中部署无法解析此引用。找不到程序集System.Web.Http,Version = 4.0.0.0

时间:2015-04-09 21:30:51

标签: c# asp.net-mvc-4 azure asp.net-web-api asp.net-web-api2

我正在尝试在Azure中部署网站,但我有这个错误:

  

D:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets(1605,5):警告MSB3245:无法解析此引用。无法找到程序集“System.Web.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35,processorArchitecture = MSIL”。检查以确保磁盘上存在程序集。如果您的代码需要此引用,则可能会出现编译错误。 [d:\家\网站\库的\ src \演示\ Nop.Web.Framework \ Nop.Web.Framework.csproj]   Mvc \ Api \ AuthorizeApiAttribute.cs(13,53):错误CS0234:名称空间'System.Web'中不存在类型或命名空间名称'Http'(您是否缺少程序集引用?)

我检查过并在解决方案中激活了“复制本地”选项。知道问题是什么吗?

2 个答案:

答案 0 :(得分:0)

检查Web.Config并确保加载正确的版本,并确保在.NET 4.0或NuGet System.Net.Http.dll中引用Microsoft.AspNet.WebApi.Core。您使用的版本必须与web.config中的版本相匹配。

e.g。 Microsoft.AspNet.WebApi.Core 5.2.3的Nuget可能有System.Web.Http之类的内容:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>

答案 1 :(得分:0)

确保您对System.Net.Http.dll的引用来自与其他库相同的源。这应该是您要添加到的项目的bin文件夹。

还要确保您的packages.config文件包含该库的参考:

  <?xml version="1.0" encoding="utf-8"?>
      <package id="System.Reflection.Extensions" version="4.3.0" targetFramework="portable45-net45+win8+wp8+wpa81" />
      <package id="System.Runtime.Extensions" version="4.3.0" targetFramework="portable45-net45+win8+wp8+wpa81" />
      <package id="System.Net.Http" version="4.0.0" targetFramework="portable45-net45+win8+wp8+wpa81" />
    </packages>

如果没有,请使用正确的目标框架添加如上所示。

我相信更新版本的.NET框架(大于4.0)已经发布了System.Net.Http。如果这是一个选项,您只需升级.NET版本。