我有另一个"无法加载文件或程序集或其中一个依赖项"的问题.
附加信息:无法加载文件或程序集"Microsoft.Practices.Unity,Version = 1.2.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35"或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)
我不知道是什么导致这个或我如何调试它来找到原因.
我已经在我的解决方案目录.csproj文件中进行了搜索,以及我拥有Unity的所有地方:
参考Include ="Microsoft.Practices.Unity,Version = 2.0.414.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35,processorArchitecture = MSIL"
在我的任何项目中找不到任何与1.2.0.0相对应的参考.
任何想法我应该如何解决这个问题?
我也很欣赏如何调试这样的问题的技巧.
我在运行应用程序时遇到此错误(不是在编译时):
无法加载文件或程序集'Castle.Windsor,Version = 2.1.0.0,Culture = neutral,PublicKeyToken = 407dd0808d44fbdc'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)
我的解决方案有许多项目,尽可能使用项目引用,但其中一些项目具有对外部依赖项的程序集引用.
如何轻松找出正在寻找此特定版本的项目Castle.Windsor.dll?我没有那个版本,我试图使用2.5.2(最新),所以我想找到罪魁祸首并更新它以使用最新版本.
提前谢谢了.
更新
我在下面添加了一个已清理的Fusion日志.它似乎告诉我Caliburn.Castle需求Castle.Windsor, Version=2.1.0.0(这将是一个错误,因为我使用2.5),但Fusion组装探测实际上找到了Castle.Windsor, Version=2.5.1.0.
我理解正确吗?
=== Pre-bind state information ===
LOG: User = Barney\neil
LOG: DisplayName = Castle.Windsor, Version=2.1.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc
(Fully-specified)
LOG: Appbase = file:///[Debug folder of my exe]
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = [Filename of my exe]
Calling assembly : Caliburn.Castle, Version=1.1.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f.
===
LOG: …Run Code Online (Sandbox Code Playgroud)