Deploying Add-In using a third party dll

3162
3
11-21-2012 03:55 AM
AndyBridle
New Contributor
I've written a C# Add-In for ArcMap 10.0 that references a third party dll (in this case the Oracle ODP.NET, Managed Driver Beta (11.2.0.3.50) http://www.oracle.com/technetwork/database/windows/downloads/odpmbeta-1696432.html)

It works fine on the development machine the only problem I'm having is with the deployment.

I've checked the install folder of my compiled Add-In and it does contain the Oracle.ManagedDataAccess.dll. Which I thought would be enough for Arcmap to locate it.

However when I run the Add-In on the deployed machine I get the message:
Unable to find assembly 'Oracle.ManagedDataAccess .....'

I have found that I can get it to work by placing a copy of the dll into
C:\Program Files (x86)\ArcGIS\Desktop10.0\Bin

The whole attraction of Add-Ins for me is the lightweight deployment and lack of admin rights required to install so I'd really like to figure out a way to get this to work without additional config outside of the Add-In installer. Any Ideas?
0 Kudos
3 Replies
DubravkoAntonic
New Contributor III
Didn't try but in VS add this Oracle.ManagedDataAccess.dll reference by browse. Set Copy to output directory.
Verify if it runs ok.
It looks to me that is t should work, like with log4net.dll 🙂

Don't deploy your AddIn by AddInManager but, by hand, by copying it in well known locations like C:\Program Files\ArcGIS\Desktop10.0\Bin\Addins\ with Oracle.ManagedDataAccess.dll

Please try and let us know does it hold water.

Regards Dubravko
0 Kudos
AndyBridle
New Contributor
I have the same result when copying the Add_in to a well known folder.

I've tried with the dll included within the add-in's install folder, in the add-in's top level and sat alongside it and in each case Arcmap fails to locate it.
However moving it to C:\Program Files (x86)\ArcGIS\Desktop10.0\Bin and it finds it.
0 Kudos
ChrisEwing1
New Contributor
We had the same problem with the ionic.dll (for zipping and extracting) in an addin that we developed. The answer seems to be that you need to double-click the addin to register it (and all it's bundled dlls). The error message we had about the missing dll disappeared when the addin was registered properly. (you can also use esriregaddin.exe to register it too). Hope this helps.
0 Kudos