.NET WPF中的Unity Framework出错

时间:2013-05-01 05:38:04

标签: asp.net .net wpf unity-container

编译项目时出现以下错误。我正在使用Unity框架版本3.0.0.0与visual studio 4.5进行依赖注入的统一框架。据我所知,它要求统一版本3.0.1208。

如果是这种情况,我可以从这里下载此版本,因为我在谷歌上找不到任何关于它的内容。

Assembly 'Microsoft.Practices.Prism.UnityExtensions, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' uses 'Microsoft.Practices.Unity, Version=3.0.1208.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' which has a higher version than referenced assembly 'Microsoft.Practices.Unity, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'   e:\DataForm\Binaries\PRISM\Microsoft.Practices.Prism.UnityExtensions.dll    DataForm.WPFApp

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题:

1)“C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Bin \ x64 \ ildasm.exe”Microsoft.Practices.Prism.UnityExtensions.dll /out:Microsoft.Practices.Prism.UnityExtensions.il

2)将Microsoft.Practices.Prism.UnityExtensions.il第21行编辑为:“。3:0:1208:0” - >“。ver 3:0:0:0”

3)保存.il文件

4)“C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ ilasm.exe”Microsoft.Practices.Prism.UnityExtensions.il / dll /out:Microsoft.Practices.Prism.UnityExtensions.dll

使用新的.dll,它引用了3.0.0版而不是3.0.1208 ..

希望有所帮助;)

更新

可能你还需要在新组件上做一个新的标志:

“C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Bin \ ildasm.exe”Microsoft.Practices.Prism.UnityExtensions.dll /out:.\Signed\Microsoft.Practices.Prism.UnityExtensions.il

“C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ ilasm.exe”。\ Signed \ Microsoft.Practices.Prism.UnityExtensions.il / dll /key="C:\MyPublicPrivateKeyFile.snk“/输出= \签名\ Microsoft.Practices.Prism.UnityExtensions.dll