Sin lugar a duda. Puede obtener el error del compilador "Referencia ambigua" cuando no se pueden distinguir dos objetos. Por lo general, puede especificar la ruta completa en el código y no causará un problema, pero si los dlls fueran completamente idénticos, no podría distinguir entre dos objetos de ninguna manera. Sya tenemos dos dlls:
System.IO que contiene la clase File
y
MyProject.IO que contiene una clase de archivo
Si tuviera algo como esto ...
using System.IO;
using MyProject.IO;
...
private void foo()
{
File f = new File();
}
... tendría una referencia ambigua, ya que no hay forma de saber de qué archivo está hablando. Esto lo solucionaría:
using System.IO;
using MyProject.IO;
...
private void foo()
{
MyProject.IO.File f = new MyProject.IO.File();
}
La única forma en que sería difícil de solucionar sería si la ruta del "Archivo" fuera idéntica en ambos ensamblajes, pero eso requeriría la situación poco probable de que dos dlls tuvieran una estructura de espacio de nombres idéntica. Por ejemplo, mi situación anterior nunca sucedería, ya que nadie va a nombrar allí el proyecto "Sistema" (con la excepción de los desarrolladores reales del marco .Net).