1 VS解决方案中的混合签名组件?

时间:2009-04-01 14:55:11

标签: visual-studio-2008 architecture assemblies signed

嘿,目前我正在尝试运行一个项目(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的罪魁祸首。目前,这些设置都设置为默认值。

有没有人能解决这个问题?谢谢!

2 个答案:

答案 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有什么样的参考?它是文件引用还是项目引用?尝试删除引用并将其重新添加为项目引用。