I am trying to complete an installation of Umbraco version 7.5.10 assembly: 1.0.6261.14290 with Umbraco Courier 3.0.5 and uCommerce 7.5.0.17040.
It appears that uCommerce requires FluentNHibernate.dll 2.0.1.0 & NHibernate.dll 4.0.0.4000 and places both these files in the bin/ucommerce folder.
It also appears that Umbraco Courier requires FluentNHibernate.dll 1.4.0.0 and NHibernate.dll 3.4.1.4000.
This conflict results in errors such as
………. Could not load all types from "Umbraco.Courier.Persistence.V7.NHibernate, Version=1.3.50.17068, Culture=neutral, PublicKeyToken=null" due to LoaderExceptions, skipping:
………. . System.IO.FileLoadException: Could not load file or assembly 'FluentNHibernate, Version=1.4.0.0, Culture=neutral, PublicKeyToken=8aa435e3cb308880' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
In attempting to fix this using the technique described at http://maffrigby.com/using-different-versions-of-the-same-dll-in-a-project/ I have placed a copy of FluentNHibernate.dll 1.4.0.0 both in /bin and in the folder \AppData\TTDLLStore\FluentNHibernate\1400 and a copy of NHibernate.dll 3.4.1.4000 both in /bin and in folder \AppData\TTDLLStore\NHibernate\3414000 and then set a VS Project “Reference” to each of these files referencing the locations in \AppData\TTDLL_Store.......
However, as or immediately after, setting the References (before re-compiling or running) the following occurred which I do not understand:
(1) After setting the Reference, If I look at the Reference Properties the “Path” for these two references is not to \AppData\TTDLL_Store....... as I would expect but they are as follows:
a. For FluentNHibernate: D:\Clancy\ATeraTastic\Dev\TeraTastic12\TeraTastic\AppData\TEMP\uCommerceAppsAssemblyShadowCopy\CBD7D79B268E90FABDB51E1D723E73EA\FluentNHibernate.dll
b. For NHibernate: D:\Clancy\ATeraTastic\Dev\TeraTastic12\TeraTastic\AppData\TEMP\uCommerceAppsAssemblyShadowCopy\1288316830C34B11D342F74AF567C561\NHibernate.dll
(2) Both these DLLs in the bin folder is overwritten with the (newer) uCommerce versions
I note that the Reference Path includes uCommerceAppsAssemblyShadowCopy.
So my questions are
(1) What is “uCommerceAppsAssemblyShadowCopy” and how does it work ?
(2) Why does by older (Courier) version of these DLLs in /bin keep getting overwritten with the newer (uCommerce) versions ?
(3) Any suggestions as to how to make these DLLs of different version numbers work side by side would be appreciated.
DLL Hell Error with fresh install of uCommerce with Umbraco Courier
Dear Courier Folk,
( Note that this has also been posted to http://eureka.ucommerce.net/#!/question/2149/DLL-Hell-Error-with-fresh-install-of-uCommerce-with-Umbraco-Courier#top )
I am trying to complete an installation of Umbraco version 7.5.10 assembly: 1.0.6261.14290 with Umbraco Courier 3.0.5 and uCommerce 7.5.0.17040.
It appears that uCommerce requires FluentNHibernate.dll 2.0.1.0 & NHibernate.dll 4.0.0.4000 and places both these files in the bin/ucommerce folder.
It also appears that Umbraco Courier requires FluentNHibernate.dll 1.4.0.0 and NHibernate.dll 3.4.1.4000.
This conflict results in errors such as
………. Could not load all types from "Umbraco.Courier.Persistence.V7.NHibernate, Version=1.3.50.17068, Culture=neutral, PublicKeyToken=null" due to LoaderExceptions, skipping:
………. . System.IO.FileLoadException: Could not load file or assembly 'FluentNHibernate, Version=1.4.0.0, Culture=neutral, PublicKeyToken=8aa435e3cb308880' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
In attempting to fix this using the technique described at http://maffrigby.com/using-different-versions-of-the-same-dll-in-a-project/ I have placed a copy of FluentNHibernate.dll 1.4.0.0 both in /bin and in the folder \AppData\TTDLLStore\FluentNHibernate\1400 and a copy of NHibernate.dll 3.4.1.4000 both in /bin and in folder \AppData\TTDLLStore\NHibernate\3414000 and then set a VS Project “Reference” to each of these files referencing the locations in \AppData\TTDLL_Store.......
However, as or immediately after, setting the References (before re-compiling or running) the following occurred which I do not understand:
(1) After setting the Reference, If I look at the Reference Properties the “Path” for these two references is not to \AppData\TTDLL_Store....... as I would expect but they are as follows:
a. For FluentNHibernate: D:\Clancy\ATeraTastic\Dev\TeraTastic12\TeraTastic\AppData\TEMP\uCommerceAppsAssemblyShadowCopy\CBD7D79B268E90FABDB51E1D723E73EA\FluentNHibernate.dll
b. For NHibernate: D:\Clancy\ATeraTastic\Dev\TeraTastic12\TeraTastic\AppData\TEMP\uCommerceAppsAssemblyShadowCopy\1288316830C34B11D342F74AF567C561\NHibernate.dll
(2) Both these DLLs in the bin folder is overwritten with the (newer) uCommerce versions
I note that the Reference Path includes uCommerceAppsAssemblyShadowCopy.
So my questions are
(1) What is “uCommerceAppsAssemblyShadowCopy” and how does it work ?
(2) Why does by older (Courier) version of these DLLs in /bin keep getting overwritten with the newer (uCommerce) versions ?
(3) Any suggestions as to how to make these DLLs of different version numbers work side by side would be appreciated.
Any help much appreciated.
Thanks
Terry Clancy
ClanceZ
For completeness sake there's an answer up on Eureka at http://eureka.ucommerce.net/#!/question/2149/DLL-Hell-Error-with-fresh-install-of-uCommerce-with-Umbraco-Courier
is working on a reply...