For sure. You can get the "Ambiguous Reference" compiler error, when two objects cannot be distinguished. Typically, you can specify the full path in code and it will not cause an issue, but if the dlls were fully identical, then you would not be able to distinguish between two object in any way. Sya we have two dlls:
System.IO which contains the File class
and
MyProject.IO which contains a File class
If you were to have something like this...
using System.IO;
using MyProject.IO;
...
private void foo()
{
File f = new File();
}
... you would have an ambiguous reference, since there is no way to tell which file you are talking about. This would fix it:
using System.IO;
using MyProject.IO;
...
private void foo()
{
MyProject.IO.File f = new MyProject.IO.File();
}
The only way it would be difficult to fix would be if "File"'s path was identical in both assemblies, but that would require the unlikely situation where two dlls had an identical namespace structure. For example, my situation above would never happen, since no one is going to name there project "System" (with the exception of the actual developers of the .Net framework).