我正在尝试将 Unity
升级到版本 (2.1.505.2),但是当我运行该应用程序时,我得到以下 FileLoadException
Could not load file or assembly 'Microsoft.Practices.Unity, Version=2.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies.
我们正在从 Unity 2.0.414.0 升级到 2.1.505.2。
- 解决方案中所有引用 Unity 的项目引用均指代 dll 的正确版本
- Gac 中没有引用 Unity dll。 (通过检查
gacutil -l
进行双重检查) 我从存档中删除了所有 Unity dll。用 powershell 仔细检查
PS C:\> ls -rec -inc Microsoft.Practices.Unity.dll | foreach-object { "{0}`t{1}" -f $_.FullName, [System.Diagnostics.FileVersionInfo]::GetVersionInfo($_).FileVersion }
我如何找出什么/谁仍然指的是 Unity 2.0.414.0?
FusionLogVw 没有告诉我哪个 DLL 导致了问题。
非常感谢任何帮助!
最佳答案
问题出在另一个引用旧版本 unity 的 Microsoft dll。我发现这是偶然检查每个引用的 dll 的 namespace ,并发现另一个包含具有“统一” namespace 的 dll。
更新:
- Microsoft.Practices.EnterpriseLibrary.Common
- Microsoft.Practices.EnterpriseLibrary.Validation
到最新发布的版本解决了这个问题。
我希望我能为那些也在这个问题上焦头烂额的迷失灵魂挽救一天......:)
关于c# - 无法加载文件或程序集 'Microsoft.Practices.Unity',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21242497/