问题
This is a CLR project. I'm importing two DLL files with the same name, quizz.dll
(I rename the old version as legacyquizz.dll
) and I include the newer version as quizz.dll
into a legacy converter test project. (The legacy converter project being tested only imports the old quizz.dll
).
This is the error I'm getting . . .
An assembly with the same simple name 'Quizz, Version=2.0.0.1, Culture=neutral, PublicKeyToken=null has already been imported.
Try removing one of the references or sign them to enable side-by-side. c:\ . . . \Quizz.dll
The path it's pointing to is the destination of the newer version of quizz.dll.
I'm using an external alias on the legacyquizz.dll file:
extern alias legacy;
What is a "simple name" in this context?
回答1:
You can see the simple name by opening project properties and selecting Assembly Information:

To sign the assembly you need to select Signing tab and create or select signing key:

回答2:
You have two assemblies with the same name (not file name, assembly name). There are two solutions to this:
- Rename one of the assemblies from the project's properties and recompile.
- Set up Strong-Name Signing on the assembly to allow two separate versions of the same assembly to coexist.
回答3:
If you are working with the new .csproj version, you may encounter this problem after you add a reference to another solution project, if the reference already exists as an Assembly Dependency (this reference may have been added automatically by Visual Studio).
On Solution Explorer, expand the conflicting project, navigate to Dependencies->Assemblies and check that there is not an existing reference to the assembly that is raising the conflict. If it exists, just delete it and the conflict will be resolved.
回答4:
I too seems this problem in my project. I had changed my dll path to another folder, and changed the reference path too for the same(dependency Layers). It will work. No duplication occurs.
来源:https://stackoverflow.com/questions/14001185/assembly-same-simple-name-already-been-imported-error