The Microsoft .NET Framework 2.0 SDK Configuration tool is a GUI for the C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config
file.
However, I was working on a machine that didn’t have the SDK installed and I didn’t want to install it on that machine. I needed to redirect an assembly by adding an <assemblyBinding>
element, so I looked up the specification of the element at http://msdn.microsoft.com/en-us/library/twy1dw1e.aspx and went directly to the machine.config file in a text editor tool.
Regarding the appliesTo
attribute, the documentation says the following:
… If no
appliesTo
attribute is specified, the<assemblyBinding>
element applies to all versions of the .NET Framework.
I wanted my binding to apply to all the versions of the .NET framework, and I thought I would specify that in the XML by specifying appliesTo=""
, as below.
1<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" appliesTo="">
2 ...
3</assemblyBinding>
In all applications that I am familiar with - and even in ASP.NET - an attribute that has a value of the empty string behaves like the attribute has not been specified.
However, if you manually add an assembly binding section, do NOT specify appliesTo=""
, because that will actually prevent the assembly bindings applying to any .NET version at all!
Even after installing and using the tool to remove/fix the inner details of all assembly bindings, the actual <assemblyBinding>
element was not removed and the manually added appliesTo=""
remained - and this would cause future havoc.
Moral of the story: do NOT specify appliesTo=""
in an <assemblyBinding>
element!!
comments powered by Disqus