【问题标题】:Mixed signed assemblies in 1 VS solution?1 VS 解决方案中的混合签名程序集?
【发布时间】:2010-10-16 21:29:39
【问题描述】:

嘿,目前我正在尝试运行一个项目 (Noizwaves.Client),该项目具有对签名类库 (Noizwaves.Core) 的依赖项(作为项目引用)。 Noizwaves.Core 的程序集版本设置为 2.0.*。我在同一个 VS2008 解决方案文件中拥有这两个项目。 Noizwaves.Client 设置为默认启动项目。

所有项目(和解决方案)在 VS 中构建良好,但是当我运行 Noizwaves.Client 时,出现以下异常:

无法加载文件或程序集“Noizwaves.Core,版本=2.0.3378.15610,Culture=neutral,PublicKeyToken=bed7327d8103b148”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (HRESULT 异常:0x80131040)

当我查看 Noizwaves.Client 的调试目录时,我可以看到 Noizwaves.Core 的版本是 2.0.3378.15613。

我认为项目的构建设置/顺序应该归咎于 VS2008。目前所有设置都设置为默认值。

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

【问题讨论】:

    标签: visual-studio-2008 architecture assemblies signed


    【解决方案1】:

    Noizwaves.Client 可能正在从不同的位置加载 Noizwaves.Core。 GAC 中有 Noizwaves.Core 吗?在 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 应用程序的大量日志文件。

    【讨论】:

      【解决方案2】:

      客户端项目对核心 DLL 有什么样的引用?它是文件引用还是项目引用?尝试删除引用并将其重新添加为项目引用。

      【讨论】:

      • 嘿,我已经编辑了描述以将参考作为项目参考。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-21
      • 2023-01-28
      • 1970-01-01
      • 2015-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多