Link to home
Start Free TrialLog in
Avatar of brenlex
brenlexFlag for United Kingdom of Great Britain and Northern Ireland

asked on

Pathing of managed DLL without GAC

To date I have been in the position whereby I have always been able to run my C# executables from the same directory in which my dependant managed DLLs are located.  I now need to store my exes in a seperate directory from the DLLs.  Pre .NET my DLLs were located in a dir pathed correctly in Windows, hence the the exes would pick them up ok.  However, now (with .NET exes/dlls) I can only get them to work from the same dir.  As far as I can ascertain, I need to register my DLLs in the GAC.  The only concern I have with this is the manual usage of the SN.exe to create snk file etc. This seems to be a bit OTT just to point to a DLL.
Questions: (1) If I do go down the route of GAC and strong naming, does the SNK file have to be resident on the running system, and if so, where? (2) Whenever a new release of either the exe or dll is required, do I have to recompile both? (3) Is there any other alternative to pointing to the DLL's path string i.e. programatically.
Avatar of Kyle Abrahams, PMP
Kyle Abrahams, PMP
Flag of United States of America image

1)  No.  The SNK is used to sign the DLL . . . once signed the hash is stored in the manifest.  

2)  Whenever a new release is done, you will need to re-sign the file using the snk.

3) see http://www.vcskicks.com/csharp_assembly.html

Avatar of brenlex

ASKER

Thanks ged325.  Re: (2) -- I presume you are referring to release of a new exe (i.e. "re-sign" with the orignal DLL's snk?  What if I produce a new release of the orignal DLL registered in the GAC -- do I need to produce another snk and redistribute new exe too?
ASKER CERTIFIED SOLUTION
Avatar of Kyle Abrahams, PMP
Kyle Abrahams, PMP
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial