“程序集相同的简单名称已被导入”错误
Posted
技术标签:
【中文标题】“程序集相同的简单名称已被导入”错误【英文标题】:"Assembly Same Simple Name already been imported" error 【发布时间】:2012-12-09 16:27:31 【问题描述】:这是一个 CLR 项目。我正在导入两个同名的 DLL 文件,quizz.dll
(我将旧版本重命名为 legacyquizz.dll
)并将新版本作为 quizz.dll
包含到旧转换器测试项目中。 (正在测试的旧转换器项目仅导入旧的quizz.dll
)。
这是我得到的错误。 . .
具有相同简单名称“测验”的程序集, 版本=2.0.0.1,文化=中性, PublicKeyToken=null 已经被导入。
尝试删除其中一个引用或将其签名 并排启用。 C:\ 。 . . \Quizz.dll
它指向的路径是新版本 quizz.dll 的目的地。
我在 legacyquizz.dll 文件上使用了一个外部别名:
extern alias legacy;
在这种情况下,什么是“简单名称”?
【问题讨论】:
尝试从其中一个测验项目的项目属性中重命名程序集名称。 我不能这样做,它是灰色的。 【参考方案1】:如果您正在使用新的 .csproj 版本,则在添加对另一个解决方案项目的引用后,如果该引用已作为程序集依赖项存在(此引用可能已由 Visual Studio 自动添加),则可能会遇到此问题.
在解决方案资源管理器中,展开冲突项目,导航到 Dependencies->Assemblies 并检查是否存在对引发冲突的程序集的引用。如果存在,直接删除,冲突就解决了。
【讨论】:
【参考方案2】:我的项目中也出现了这个问题。我已将我的 dll 路径更改为另一个文件夹,并将引用路径也更改为相同的(依赖层)。它会起作用的。不会发生重复。
【讨论】:
【参考方案3】:你有两个同名的程序集(不是文件名,程序集名)。有两种解决方案:
-
重命名项目属性中的一个程序集并重新编译。
在程序集上设置 Strong-Name Signing 以允许同一程序集的两个不同版本共存。
【讨论】:
【参考方案4】:您可以通过打开项目属性并选择程序集信息来查看简单名称:
要对程序集进行签名,您需要选择“签名”选项卡并创建或选择签名密钥:
【讨论】:
以上是关于“程序集相同的简单名称已被导入”错误的主要内容,如果未能解决你的问题,请参考以下文章
找不到包含 OwinStartupAttribute 错误的程序集