C# – How to reference a DLL in the web.config


I have a DLL in the BIN folder, and I need it to be referenced in the web.config, or I get that annoying error:

Description: An error occurred during
the compilation of a resource required
to service this request. Please review
the following specific error details
and modify your source code

Compiler Error Message: CS0234: The
type or namespace name 'ServiceModel'
does not exist in the namespace
'Microsoft' (are you missing an
assembly reference?)

This DLL is not in the GAC, and for that I can not use the

<assemblies><add ...

So my guess is that I need to use the configSections like

  <section name="Microsoft.System.Web" 
                 Version=, Culture=neutral,
                 PublicKeyToken=10633fbfa3fade6e "/>

What should be the correct code?

Best Solution

Unless the assembly you are using is strongly named, placing it in the bin directory is all you should need to do.

The configSection you mention is not for adding references to assemblies. This is to define configuration sections in the web.config. So you could add a config section called exampleSection by adding a section tag to configsSections. This would allow you do create a configuration section named "exampleSection" later in the web.config.

The reason that there is an assembly reference in the configSections section definition is that each config section is specific to an assembly for which it is providing configuration data. The configSection might be specific to the website assembly itself (in which case that is the assembly you would specify) or it might be some other assembly used by the site. Creating a configSection gives you the ability to group settings that are related in one section, instead of inter mingling them all application wide in the appsettings.

If you gave more information about what you were having trouble with, maybe we could help. What is the assembly and how is it being used?