Dll 无法从GAC加载嵌入式依赖项

Dll 无法从GAC加载嵌入式依赖项,dll,ilmerge,fody,fody-costura,Dll,Ilmerge,Fody,Fody Costura,我制作了一个HttpModule,我将它添加到GAC中,然后在我的web.config中注册它。我曾经嵌入依赖项。我的bin文件夹中的输出只包含一个dll、一个.config和一个.pdb(因为所有依赖项都合并到该文件中)。我的问题是,每当我从GAC加载模块时,它都无法找到嵌入的依赖项。我有以下意见: 无论何时从/bin文件夹加载模块,一切正常。我注册模块如下: 问题似乎与Newtonsoft.Json本身有关 这些问题表明,不同的Newtonsoft.Json版本的相同强名称存在问题:

我制作了一个HttpModule,我将它添加到GAC中,然后在我的web.config中注册它。我曾经嵌入依赖项。我的bin文件夹中的输出只包含一个dll、一个.config和一个.pdb(因为所有依赖项都合并到该文件中)。我的问题是,每当我从GAC加载模块时,它都无法找到嵌入的依赖项。我有以下意见:

  • 无论何时从/bin文件夹加载模块,一切正常。我注册模块如下:

问题似乎与
Newtonsoft.Json
本身有关

这些问题表明,不同的
Newtonsoft.Json
版本的相同强名称存在问题:

因此,如果GAC中已经安装了一个版本,而您尝试安装另一个版本,则不会安装该版本

具有相同强名称的程序集应相同

因此,您的应用程序无法在GAC中找到所需版本的
Newtonsoft.Json
,因为它不存在


如果您可以尝试避免使用GAC,它应该可以解决问题。

看起来您在项目中依赖于Newtonsoft.Json。它是否设置了“复制本地”属性?是的,所有必需的依赖项都设置了“复制本地”=true@JorgeZuverza我回答你的问题了吗?你能接受这个答案吗?我没有在GAC中安装Newtonsoft.Json的版本。我希望此依赖项嵌入到我的dll中。如果我在GAC中安装Newtonsoft.Json,Newtonsoft.Json不会失败。然而,我的下一个依赖项(在本例中是OWIN)与Newtonsoft一样失败。因此,我认为这是costura的一个问题,即系统查找嵌入式依赖项的问题。与Newtonsoft本身无关。@JorgeZuverza OWIN库的确切名称是什么?它的版本是什么?