这是一个CLR项目。我正在导入两个名称相同的DLL文件quizz.dll
(我将旧版本重命名为legacyquizz.dll
),并将新版本quizz.dll
包含在旧版转换器测试项目中。 (正在测试的旧版转换器项目仅导入旧的quizz.dll
)。
这是我得到的错误。 。
具有相同简单名称的组件'Quizz, 版本= 2.0.0.1,文化=中立, PublicKeyToken = null已导入。
尝试删除其中一个引用或将其签名 并排启用。 C:\ 。 。 。 \ Quizz.dll
它所指向的路径是较新版本的quizz.dll的目的地。
我在legacyquizz.dll文件中使用外部别名:
extern alias legacy;
在这种情况下,什么是“简单名称”?
答案 0 :(得分:5)
您可以通过打开项目属性并选择装配信息来查看简单名称:
要对程序集进行签名,您需要选择“签名”选项卡并创建或选择签名密钥:
答案 1 :(得分:3)
您有两个具有相同名称的程序集(不是文件名,程序集名称)。有两种解决方案:
答案 2 :(得分:0)
如果使用的是新的.csproj版本,则在添加对另一个解决方案项目的引用后,如果该引用已经作为程序集依赖项存在,则可能会遇到此问题(Visual Studio可能已自动添加了此引用)
在解决方案资源管理器上,展开冲突的项目,导航到 Dependencies-> Assemblies 并检查是否存在对引发冲突的程序集的现有引用。如果存在,只需将其删除即可解决冲突。
答案 3 :(得分:-2)
我的项目中似乎也出现了这个问题。我已将我的dll路径更改为另一个文件夹,并为相同的(依赖层)更改了引用路径。它会工作。没有重复发生。