.NET assembly binding failure (different versions with a redirect), weird! -


I tried to troubleshoot an application created against Version 9.1 of a vendor's libraries on the machine installed on version 9.3 I am here. The vendor provided a publisher policy file which redirects all versions from 9.0 to 9.3 DLL, and is installed in the GAC.

With the new version of our application built with Version 9.2, the publisher policy file has been found and everything just works 9.1 with the linked version, the Publisher Policy file has never received Fusogview results Has never been mentioned in

Here is an example of a successful load from fuslogvw:

  LOG: This constrains the default load starts in context log: Using the application configuration file: c: \ wINDOWS \ Microsoft.NET \ framework \ v2.0.50727 \ RegAsm.exe.Config log: c: using \ wINDOWS \ Microsoft.NET \ framework \ v2.0.50727 \ config machine configuration file \ machine.config. LOG: Publisher policy file C: \ WINDOWS is \ Assembly meets on \ GAC_MSIL \ policy.9.2.ESRI.ArcGIS.System \ 9.3.0.1770__8fc3cc631e44ad86 \ ESRI.ArcGIS.System.config. LOG: Publisher Policy File Redirect is Detected: 9.2.0.1324 Redirected to 9.3.0.1770 Login: Processor Architecture has launched MSIL LOG: Post-policy reference: ESRIkArcGISkSystem, Version = 9.3.0.1770, Culture = neutral, Sarwajnikkitokn = 8fc3cc63le44ad86, Prosesrarchaicrccr = MSIL LOG: Found assembly by looking in the GAC. LOG: Binding succeeds C: \ WINDOWS \ assembly \ GAC_MSIL \ ESRI.ArcGIS.System \ 9.3.0.1770__8fc3cc631e44ad86 returns assembly \ ESRI.ArcGIS.System.dll. Log: The assembly is loaded in the default load context.  

And, here's the failure:

  LOG: This starts the default load reference in the log: Using the application configuration file: c: \ WINDOWS \ Microsoft.NET \ framework \ v2.0.50727 \ RegAsm.exe.Config Log: c: \ wINDOWS \ Microsoft.NET \ framework \ v2.0.50727 \ config using the machine configuration file \ machine.config. Log: Post-policy references: ESRI.ArcGIS.System, version = 9.1.0.722, culture = neutral, public keynote = 8fc3cc631e44ad86 LOG: GAC lookup was unsuccessful. Log: Attempt to Download New URL File: /// C: / Program Files / Projectserve / Vista / ESRI.ACCGIS System DLL Log: Attempt to Download New URL File: /// C: / Program Files / Nature All / Vista / ESRI.ARCGIS System / ESERI.ARCGIS System DDLL Log: Attempt to Download New URL File: /// C: / Program Files / ProjectServ / Vista / ESERI.ARCGIS System.exe Log: Attempt to Download New URL File: /// C: / Program Files / Nature All / Vista / ESRI.ARCGIS SYSTEM / E.S.RI.ARCGIS System.exe Logs: All checking URLs attempted and failed  

Note: Display name, culture, and public key tokens are the same.

So, what is the version (in addition to version)? Why not find a policy file? What black magic do we need to overcome this (as long as we can skip our support for our 9.1 platform)?

Ah, the magic of posting your problems on the Internet:

It seems That's the path of the policy file in the form of the '9.2' version string as part of the folder name, which I can only understand the meaning of that it will be resolved only for the request of the vendor's libraries 9.2.

Therefore it is being installed in an incomplete manner (since the policy file itself redirects to version 9.0 later).

As described, we can automatically include redirects in an application config file; Although it is present in the vendor's version of the software, it will need to be conditional.

I acknowledge that I have not even understood this as a solution ...


Comments

Popular posts from this blog

c++ - Linux and clipboard -

What is expire header and how to achive them in ASP.NET and PHP? -

sql server - How can I determine which of my SQL 2005 statistics are unused? -