我开始创建一个控制台应用程序并作为自主主机OWIN应用程序运行。已安装的Web API,一切正常。
现在我安装了SystemWeb nuget包,将应用程序的类型更改为"类库",将输出文件夹更改为" bin \"只要。
当我使用IIS Express运行应用程序时,第一次加载应用程序时,我收到一个例外:
Could not load file or assembly 'Microsoft.Owin, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
我意识到System.Web.Http.Owin正在引用Microsoft.Owin -V 2.0.2.0。
在App.config中存在以下内容:
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.1.0.0" newVersion="2.1.0.0" />
</dependentAssembly>
</assemblyBinding>
尽管如此,仍然得到同样的例外。有什么想法吗?
由于
答案 0 :(得分:2)
我有这个。复制app.config并将其重命名为web.config。这将使IIS / IIS Express能够使用必要的绑定重定向。
答案 1 :(得分:0)
从“引用”列表中,在编译时将Owin DLL设置为“始终复制”。
答案 2 :(得分:0)
我认为绑定重定向不会为您做任何事情,因为您引用的版本(2.0.2.0)不在绑定重定向中。
您可以使用Assembly Binding Log Viewer (Fuslogvw.exe)工具调试类型加载例外。