嘿,目前我正在尝试运行一个项目(Noizwaves.Client),该项目具有对已签名类库(Noizwaves.Core)的依赖关系(作为项目引用)。 Noizwaves.Core将它的汇编版本设置为2.0。*。我在同一个VS2008解决方案文件中有这两个项目。 Noizwaves.Client设置为默认启动项目。
所有项目(和解决方案)在VS中构建都很好,但是当我运行Noizwaves.Client时,我得到以下异常:
无法加载文件或程序集'Noizwaves.Core,Version = 2.0.3378.15610,Culture = neutral,PublicKeyToken = bed7327d8103b148'或其依赖项之一。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)
当我查看Noizwaves.Client的调试目录时,我可以看到Noizwaves.Core的版本是2.0.3378.15613。
我认为项目的构建设置/顺序是VS2008的罪魁祸首。目前,这些设置都设置为默认值。
有没有人能解决这个问题?谢谢!
答案 0 :(得分:2)
Noizwaves.Client可能从不同位置加载Noizwaves.Core。 Noizwaves.Core是否在GAC?在Visual Studio下的某个文件夹中(例如C:\ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ PublicAssemblies)
如果这样做没有帮助,您可以尝试以下方法:
像这样设置注册表(注意:我建议您复制原始值,以便恢复原始状态):
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion]
"ForceLog"=dword:00000001
"LogFailures"=dword:00000001
"LogPath"="C:\\Temp\\FusionLog"
并创建一个文件夹C:/ Temp / FusionLog。
Fusion是.NET框架的一部分,负责查找/加载程序集。
在此更改之后,您将在该文件夹中找到所有.NET应用程序的一堆日志文件。
答案 1 :(得分:1)
Client项目对Core DLL有什么样的参考?它是文件引用还是项目引用?尝试删除引用并将其重新添加为项目引用。