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