Using binding redirection in app.config test project. Runtime refuses to obey the redirection command and continues to search for the old version of the assembly
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Msdcc.Common" publicKeyToken="9d9c15280f7f1425"/> <bindingRedirect oldVersion="0.0.0.0-2.4.0.0" newVersion="2.4.0.0"/> </dependentAssembly> </assemblyBinding> </runtime>
Well, I heard about the problems of creating a default namespace (from very wise people), so I added "xmlns =" urn: schemas-microsoft-com: asm.v1 ". I tried to run a test case, still not. Open system Fusion Log Viewer tested the problem and wonders of surprise until it searches for the old dll.The really useful message below was decrypted using this message http://msdn.microsoft.com/en-us/magazine/dd727509.aspx
*** Assembly Binder Log Entry (28/07/2010 @ 18:59:36) *** The operation failed. Bind result: hr = 0x80131040. No description available. Assembly manager loaded from: C:\WINNT\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll Running under executable C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe --- A detailed error log follows. === Pre-bind state information === LOG: User = BELGACOM\id820374 LOG: DisplayName = Msdcc.Common, Version=2.2.0.0, Culture=neutral, PublicKeyToken=9d9c15280f7f1425 (Fully-specified) LOG: Appbase = file:///c:/data/source/explorev1/explore.root/explore/euc.explore.domainobjectstest/bin/debug LOG: Initial PrivatePath = NULL LOG: Dynamic Base = NULL LOG: Cache Base = NULL LOG: AppName = NULL Calling assembly : (Unknown). === LOG: This is an inspection only bind. LOG: Using application configuration file: c:\data\source\explorev1\explore.root\explore\euc.explore.domainobjectstest\bin\debug\euc.explore.domainobjectstest.dll.config LOG: Using machine configuration file from C:\WINNT\Microsoft.NET\Framework\v2.0.50727\config\machine.config. LOG: GAC Lookup was unsuccessful. LOG: Attempting download of new URL file:///c:/data/source/explorev1/explore.root/explore/euc.explore.domainobjectstest/bin/debug/Msdcc.Common.DLL. LOG: Assembly download was successful. Attempting setup of file: c:\data\source\explorev1\explore.root\explore\euc.explore.domainobjectstest\bin\debug\Msdcc.Common.dll LOG: Entering run-from-source setup phase. LOG: Assembly Name is: Msdcc.Common, Version=2.4.0.0, Culture=neutral, PublicKeyToken=9d9c15280f7f1425 WRN: Comparing the assembly name resulted in the mismatch: Minor Version ERR: The assembly reference did not match the assembly definition found. ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.
My Though Process
This made me wonder why it still does not redirect the assembly if the link is present in my configuration file.
So, newbie, what I just decided, I will do what the old man told me, and delete the namespace declaration from the configuration item, and it tried to work. xmlns = "http://schemas.microsoft.com/.NetConfiguration/v2.0"
My Question is after this very long story from what I understand, namespace declarations should only mess with Intellisense, why does it spin with assembly binding?
c # binding assemblies
David xavier
source share