[wix-users] Installation of assembly into GAC isn´t forced by WIX

Andreas Buchner Andreas.Buchner at inloox.com
Thu Jun 21 01:10:28 PDT 2018


Hello everyone,



we have a little bit complex issue with the deployment of EntityFramework.dll and EntityFramework.SqlServer.dll. I assume that already someone else must have seen this error. So let me explain it:



  *   Since our new major version we´re using EntityFramework in version 6.2.0, in the previous versions we had 6.1.3 (we need the Async Methods of EF6)
  *   We only installed the assemblies (EntityFramework.dll and EntityFramework.SqlServer.dll) into our install location, not into the GAC.
  *   Unfortunately Microsoft didn´t change the AssemblyVersion of these assemblies between the two versions (it´s always 6.0.0.0). We don´t have an idea why they did this...
  *   Due to our research the default assembly loading behavior of the .Net Framework is to prefer assemblies from the GAC if they have the same assembly version
  *   We now have some customers which already have the older version (6.1.3) in their GAC (likely from another application) and so .Net prefers this file. As soon as we try the access some of the new EF Methods (like .ToListAsync()) we receive a "Method not found" exception.
  *   We changed our wxs file that the EF assemblies get installed into the GAC (attribute Assembly=".net" on the file-element). But it looks like that wix internally does not force the installation of the assembly into the GAC (pretend that the older version is already present).
  *   So the assembly doesn´t get updated and we still have the same issue.



Of course we could install these assemblies via gacutil in a deferred custom Action, but obviously that´s a bad solution.



So:

Any ideas on this?



Thanks!



Andreas



More information about the wix-users mailing list