I am trying to run an application which was built using Syncfusion 184.108.40.206, but the machine I am running it on has 220.127.116.11 installed.
When the application gets installed the 18.104.22.168 DLLs are placed in the application directory. However, when I run the application it is finding the new 22.214.171.124 DLLs in the GAC and the application throws an exception (caused by a difference between the two versions).
Why is it using the DLLs in the GAC rather than DLLs in the application folder? I didn''t think it was possible to load a DLL if the version didn''t match exactly?
Any help is appreciated.
ADAdministrator Syncfusion Team December 8, 2003 01:54 PM
Figured it out.
Syncfusion uses .config files which contain the following:
And because the GAC is checked BEFORE the application folder the application ends up binding to version 126.96.36.199.
ADAdministrator Syncfusion Team December 8, 2003 01:57 PM
Hmmm.. doesn''t like the XML I tried to quote...
Anyway the .config file basically contains the line:
bindingRedirect oldVersion="188.8.131.52-184.108.40.206" newVersion="220.127.116.11
Just so that you know.
GRGregSeptember 28, 2004 10:53 AM
I find this disturbing, since I recently discovered my application using the GAC SF dlls even though I had dlls in my app''s running directory.
I foresee a problem in which my application is totally within a directory and using Grid 2.0.x, then the user installs a product using Grid 2.y.x which it installs into the GAC. My understanding is that my application will then start using the 2.y.x from the GAC (against my will), which could cause incompatibility bugs.
How can I ensure that my application uses only the SF dlls in my installed directory and never the GAC? I''d rather not "hardcode" them to use a particular version of Grid, but that may be the only way. Surely I am missing something simple, as I do not have full understanding of .Net assemblies yet.
Thanks for your advice.
ADAdministrator Syncfusion Team September 28, 2004 06:15 PM
a) This is how the .NET Framework works. If there is a version of the assembly your application links to in the GAC, it will be used as noted in the previous posting.
b) You need to set the CopyLocal property in References for the Syncfusion assemblies to True and also ensure that the Syncfusion assemblies are not in the GAC.