Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Config files for assemblies in GAC

I have a .NET dll which needs to read it's config settings from it's config file. Usually, the config file is placed in the same directory as the DLL. But how do i read the config file if the DLL is GAC'ed, because I can put only the DLLs in the GAC, and not it's config files.

like image 852
ashwnacharya Avatar asked Nov 22 '08 11:11

ashwnacharya


People also ask

How do I get a list of assemblies in GAC?

You can actually navigate to the GAC via explorer or the command line and view the contents of the folder. It's location is C:\Windows\assembly. When viewing via explorer the actual files are hidden and abstracted away, if you need to copy or extract specific versions of the dlls the command line is the way to go.

Which assembly is stored in GAC?

The Global Assembly Cache (GAC) is a central repository for storing shared assemblies. The GAC allows multiple versions of the same assembly to be installed concurrently and also prevents different assembly vendors from overwriting each other's assemblies.

How do I find out if assembly is registered in GAC?

To get information on the the assembly attributes (Version, Culture, PublicKeyToken), run the gacutil /l command which will return a list of all the assemblies in the GAC. You can also see the information associated with a particular assembly using the -l parameter.


1 Answers

Does the user need to configure the Dll? If so, then the DLL should be using configuration settings from the app.config file, not it's own config. The app.config file should be stored in the same directory as the application. If not, then you could go a couple of different ways. You could make changes to the machine.config file so that your Dll can find them there. I would not do this. Alternatively, you can store the configuration in a settings class. These can be overridden via configuration, but your defaults will be set in the generated code for the settings class via attributes and so the absence of a configuration file will not affect your Dll when the defaults are all that are required.

like image 140
tvanfosson Avatar answered Oct 21 '22 00:10

tvanfosson