我正在尝试在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'(您是否缺少程序集引用?)
我检查过并在解决方案中激活了“复制本地”选项。知道问题是什么吗?
答案 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版本。