I think you'd require a better versioning of the assemblies in order to install that side by side in the Global Assembly Cache (am I right?). The biggest problem around here is to properly load the the late bound unmanaged dll versions (loded by LoadLibrary) which uses a different mechanism (searcing for the dll-s in the executing directory and the PATH environment) which doesn't allow to have those versions side by side.<br>
<br>We could also try intalling the unmanages dlls in the SxS, and refer to those files in the assembly manifest (which may cause pre-loading those dll-s) but I didn't try this solution and I can't confirm whether it works or not.<br>
<br>Best regards,<br><br>Tamas <br><br><br><br><div class="gmail_quote">2009/6/30 Tomas R <span dir="ltr"><<a href="mailto:monshi@home.se">monshi@home.se</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Ok. To clear it out.<br>
<br>
I have a plugin which make gdal available for plugins within SportTracks. Actually, just adds gdal libraries to the path the plugins find them at runtime. That is, late bindings.<br>
<br>
In simple words. How do I go about updating the plugin?<br>
If I have gdal 1.5.1 on the path and a plugin compiled against gdal 1.6.1 it fails<br>
If I have gdal 1.6.1 on the path and a plugin compiled against gdal 1.5.1 it fails.<br>
Two independent version of gdal installed, only one of them is loaded and available (the one with the lowest GUID actually)<br>
<br>
You have added a strong name in gdal 1.6, do this affect this behaviour? When moving to gdal 1.7 will any of the above setting work (switch 1.5 to 1.6 and 1.6 to 1.7) or will it always be cumbersome to upgrade?<br>
<br>
Any suggestions? It is a bit hard on the developers, and users!, depending in my plugin, me telling them "I will update gdal next week, it will break your current version of the plugin".<br>
<br>
One of the developers has a solution on his part. He sets up a wrapper that tries to bind to gdal 1.5.1 and one wrapper that tries to bind to gdal 1.6.1. The one that works he uses and it provides the function calls to gdal he needs. This way it will be possible for him to support multiple version, two wrappers should do since I will put the 1.5 version off line at the time I upload 1.6.1 version. 1.5 version should die. Other plugin developers can of course also use this method and it is not to cumbersome I guess.<br>
<br>
Environment. 1.6.1 is compiled with VSE 2008, old version was compiled with VSE 2005. Only x86. SportTracks now compiled with an x86 flag, forcing it to run in 32 bit mode because of various problem with plugins in 64 bit mode.<br>
<br>
Since you (now) have compiled versions on the web perhaps I should give up compiling gdal myself?<br>
<br>
Thanks for the quick and very good answers both of you.<br>
Yours<br>
Tomas<br>
<br>
Tamas Szekeres skrev:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
<br>
2009/6/30 Tomas R <<a href="mailto:monshi@home.se" target="_blank">monshi@home.se</a> <mailto:<a href="mailto:monshi@home.se" target="_blank">monshi@home.se</a>>><div><div></div><div class="h5"><br>
<br>
Trying to update my plugin to SportTracks that makes it possible<br>
for other plugins to the great program to make use of Gdal.<br>
Currently the plugin uses Gdal 1.5.1 and the plan is to move to 1.6.1 <br>
<br>
There seem to not be a "soft" way to upgrade as a move to gdal<br>
1.6.1 will break the other plugin. Are the changes between 1.5.1<br>
and 1.6.1 so great they require a break in compatibility?<br>
<br>
<br>
Tomas,<br>
<br>
<br>
I can't recall how the architecture of SportTracks is looking like (how it handles the plugins) and it seems your question is related to this. Assuming it may use something like late binding to the assemblies may result some kind of independence among the plugins and I suspect reinstalling a new version won't violate the other (quite untelated) assemblies. Or will you intend to keep 2 versions side by side to the application?<br>
<br>
<br>
<br>
In the future, upgrade to Gdal 1.7 will this also not be backward<br>
compatible? Are there anything I can do when compiling Gdal than<br>
may simplify the transition? Say that a plugin linked to the 1.6.1<br>
C# dlls will also work with the 1.5.1 dlls? That way it will<br>
possible to roll out the other plugins with support of Gdal 1.6.1<br>
and some time later go out with the upgrade.<br>
<br>
<br>
I would discourage mixing the dll-s from different compilations due to a bunch of unpredictable issues may happen. Mixing the versions of the dll-s at the swig side (ie gdal_csharp.dll and gdal_wrap.dll) is almost impossible since the exported functions between the dll-s may be a target of frequent changes. The gdal C API seems to be more invariant but the version change implies different dll names which prevents from loading the newer versions.<br>
Moreover you should also use the same compiler to compile these dll-s so as to depend in the same CRT runtime.<br>
<br>
You might also decide which framework is to be supported and which architecture (x86 or x64) depending on how the host process have been compiled. Most of the possible combinations are covered by the regular builds can be downloaded from this location:<br>
<a href="http://vbkto.dyndns.org:1280/sdk/Default.aspx" target="_blank">http://vbkto.dyndns.org:1280/sdk/Default.aspx</a><br>
<br>
Best regards,<br>
<br>
Tamas<br>
<br></div></div>
------------------------------------------------------------------------<div class="im"><br>
<br>
_______________________________________________<br>
gdal-dev mailing list<br>
<a href="mailto:gdal-dev@lists.osgeo.org" target="_blank">gdal-dev@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/gdal-dev" target="_blank">http://lists.osgeo.org/mailman/listinfo/gdal-dev</a><br>
</div></blockquote><div><div></div><div class="h5">
<br>
_______________________________________________<br>
gdal-dev mailing list<br>
<a href="mailto:gdal-dev@lists.osgeo.org" target="_blank">gdal-dev@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/gdal-dev" target="_blank">http://lists.osgeo.org/mailman/listinfo/gdal-dev</a><br>
</div></div></blockquote></div><br>