Error Stating 'Item X' is Ambiguous in the Namespace 'Y'
Issue
You receive an error similar to the one below indicating that some object is ambiguous in a namespace.
Error: File Manager is not available.
DotNetNuke.Services.Exceptions.ModuleLoadException:
C:\Inetpub\vhosts\site.org\httpdocs\DesktopModules\Admin\FileManager\FileMa
nager.ascx.vb(698): error BC30560: 'ZipEntry' is ambiguous in the namespace
'ICSharpCode.SharpZipLib.Zip'. ---> System.Web.HttpCompileException:
C:\Inetpub\vhosts\sifco.org\httpdocs\DesktopModules\Admin\FileManager\FileMa
nager.ascx.vb(698): error BC30560: 'ZipEntry' is ambiguous in the namespace
'ICSharpCode.SharpZipLib.Zip'.
Possible Causes
- You have two versions of the the same DLL that are being loaded.
- A programmer gave a component an ambiguous name which is causing a naming conflict with a different component.
- Code in a DLL is conflicting with a similarly named piece of code located in the /APP_CODE/ folder.
Resolution
You will need to uninstall the offending component from your DotNetNuke website. Depending on the severity of the issue, you may have to perform a manual removal of the component in order to get the website up and running again.
Identify the Offending Code
- Open the \BIN\ folder in your website and look for similarly named DLLs. For example, if you have a DLL named SharpZLIB.dll and one named ICSharpCode.SharpZLIB.dll, that is most likely the cause of the conflict.
- Open the \BIN\ folder in your website and compare it to entries in the \APP_CODE\ folder in your website. For example, if you receive an error saying DataProvider is ambiguous in the namespace DotNetNuke.Modules.HTML. Then a common issue is to see is a \BIN\DotNetNuke.Modules.HTML.dll file as well as a \APP_CODE\HTML folder
Identify Which Component Should be Removed
Typically in a situation like this, you must decide which component you want to break. These are our recommendations:
- If a component is conflicting with itself, it is generally a good idea to remove the oldest component (most components will still work if you provide them a newer DLL)
- If a component is conflicting with a different component, it is generally a good idea to remove the newest component (the component you just installed) and contact the vendor for a fix.
Remove the Offending Component
If you are removing a DLL from the /BIN/ folder, move it to a new folder named /BIN_BAD/
If you are removing a folder from the /APP_CODE/ folder, move it to a new folder named /APP_CODE_BAD/ . When removing a folder from APP_CODE, you will also have to edit the web.config file in order to comment out the Code Sub Directory.
Article ID: 490, Created: April 9, 2012 at 4:41 PM, Modified: August 25, 2014 at 2:38 PM