Postsharp OWIN版本不匹配

时间:2016-03-09 09:14:47

标签: c# asp.net owin postsharp

我在我的项目中使用PostSharp 4.2.22.0和Owin 3.0.1。

编译时出现以下错误:

  

未处理的异常(4.2.22.0,postsharp-net40-x86-srv.exe,CLR
  4.0.30319.394271,Release):PostSharp.Sdk.CodeModel.AssemblyLoadException:找不到程序集   'microsoft.owin.security,version = 2.1.0.0,culture = neutral,   公钥= 31bf3856ad364e35' 。 [版本不匹配]

但PostSharp是否与Owin有关?为什么Owin版本对PostSharp很重要,这是两个完全不同的包。

1 个答案:

答案 0 :(得分:8)

此错误通常出现在引用旧版本程序集的项目中,并在web.config文件中具有绑定重定向。我想你的web.config中有这样的东西:

TAG POS=1 TYPE=SELECT FORM=* ATTR=ID:select2-drop CONTENT=$1139

PostSharp默认不处理web.config / app.config文件。通过将PostSharpHostConfigurationFile MSBuild属性设置为web.config文件的路径,可以强制PostSharp加载绑定重定向。

您可以通过将这些行添加到csproj文件来实现:

<dependentAssembly>
  <assemblyIdentity name="microsoft.owin.security" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
  <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
</dependentAssembly>

如果不设置PostSharpHostConfigurationFile属性,则应在PostSharp 4.3中修复此不便之处。但目前4.3还不是一个稳定版本。

修改:代码已更新(缺少结束&#39;&gt;&#39;)