The subsections below provide information about upgrading existing Ice 3.6-based applications to Ice 3.6.5.
On this page:
Full Source and Binary Compatibility
Ice 3.6.5 maintains full source and binary compatibility with earlier Ice 3.6.x versions: you can upgrade your application from Ice 3.6.0 or later to Ice 3.6.5 without recompiling or relinking anything.
The database formats used by Ice services such as IceGrid and IceStorm have not changed, therefore no database migration is required. Generally speaking, you are free to use any combination of Ice 3.6.x applications and Ice services.
Some internal Ice interfaces may change in a patch release such as Ice 3.6.5, and therefore you must always upgrade all the Ice components of a given application together. For example, you should not use version 3.6.5 of the
ice36.dll with version 3.6.0 of the
icessl36.dll in the same application.
Policy Assemblies for .NET Applications
For a .NET application, Ice for .NET includes policy assemblies that supply the .NET run time with the required compatibility information. Policy assemblies have names of the form
.dll. For example, the policy assembly for IceBox is
policy.3.6.IceBox.dll. One way to upgrade an existing .NET application to a new patch release while maintaining binary compatibility is to install the policy assemblies into the Global Assembly Cache (GAC) with
Another option is to modify the
.config file of your application to add
bindingRedirect directives, as explained in the links below:
For example, in the
.config file of an application you can modify the configuration of the Ice and IceBox assemblies as follows:
.config file can be used for
iceboxnet.exe.config), to load a simple IceBox service built with Ice 3.6.0 with
cdd571ade22f2f16 is the token corresponding to ZeroC's public key for signing the assemblies in binary distributions. If you build Ice from sources, your assemblies are signed using the development key found in
config/IceDevKey.snk. The token for this development key is
The advantage of installing the policy assemblies into the GAC is that they establish binary compatibility for all Ice applications, whereas modifying a
.config file must be done for each application individually.