“已组装相同的简单名称已导入”错误
这是一个CLR项目。 我正在导入两个具有相同名称的DLL文件quizz.dll
(我将旧版本重命名为legacyquizz.dll
),并将较新版本作为quizz.dll
到旧版转换器测试项目中。 (正在测试的旧版转换器项目只导入旧的quizz.dll
)。
这是我得到的错误。 。 。
已导入具有相同简单名称“Quizz,Version = 2.0.0.1,Culture = neutral,PublicKeyToken = null”的程序集。
尝试删除其中一个引用或签名以并排启用。 C:\ 。 。 。 \ Quizz.dll
它指向的路径是较新版本的quizz.dll的目标。
我在legacyquizz.dll文件上使用外部别名:
extern alias legacy;
在这种情况下,什么是“简单名称”?
您可以通过打开项目属性并选择assembly信息来查看简单名称:
要对程序集进行签名,您需要选择“签名”选项卡并创建或选择签名密钥:
您有两个具有相同名称的程序集(不是文件名,程序集名称)。 有两种解决方案:
- 从项目的属性重命名其中一个程序集并重新编译。
- 在assembly上设置强名称签名 ,以允许同一assembly的两个单独版本共存。
我的项目中似乎也出现了这个问题。 我已将我的dll路径更改为另一个文件夹,并为相同的(依赖层)更改了引用路径。 它会工作。 没有重复发生。