Migrating your .NET applications

A .NET application built using Platform Symphony 7.1 or earlier versions will not automatically run in your upgraded IBM® Spectrum Symphony environment.

About this task

Migrating your .NET applications from Platform Symphony 6.1.1 or earlier

A .NET application built using Platform Symphony 6.1.1 or earlier versions will not automatically run in an IBM Spectrum Symphony 7.3.2 environment. This incompatibility can only be resolved by recompiling your application using the latest supported version of IBM Spectrum Symphony SDK (note that as of IBM Spectrum Symphony 7.2.1, the IBM Spectrum Symphony SDK is no longer offered). By recompiling, your application will automatically reference the new version of the assembly and run without problems. This is the best option and is the strategy recommended by Microsoft for maximum compatibility.

Migrating your .NET applications from Platform Symphony 7.1 or later

A .NET application built for Platform Symphony 7.1 or later will not automatically run in your upgraded IBM Spectrum Symphony environment. This is a known issue caused by the .NET embedded Publisher's Policy infrastructure that is strictly enforced by the framework. Any published assembly with a version number that is different from your current IBM Spectrum Symphony release will be treated as incompatible by the framework.

Procedure

This incompatibility can be resolved in one of two ways:
  • Recompile your application using the IBM Spectrum Symphony 7.3.2 SDK. By recompiling, your application will automatically reference the new version of the assembly and will run without problems. This is the best option and is the strategy recommended by Microsoft for maximum compatibility.
    Note: As of IBM Spectrum Symphony 7.2.1, the IBM Spectrum Symphony SDK is no longer offered.
  • Create a configuration file for your client and service to override the Publisher's Policy. Since the IBM Spectrum Symphony 7.3.2 assembly is designed to be fully compatible with code using a previous version, it is safe to override the publisher's policy and allow the framework to ignore the version number difference between IBM Spectrum Symphony 7.3.2 and Platform Symphony 7.1 or 7.1.1.
    The override can be achieved by creating a file named <complete executable filename>.config. For example, if your client executable has the name SyncClient.exe then you would need to create a file named SyncClient.exe.config and place it in the same location as the executable. The .NET framework will automatically parse the file and use it to override the Publisher's Policy. Here is an example of the configuration file contents (64-bit version):
    <?xml version ="1.0"?>
    <configuration>
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <publisherPolicy apply="no"/>
          <dependentAssembly>    
            <assemblyIdentity name="Platform.Symphony.Soam.Net4.0_64"
             publicKeyToken="07d115044e882e03" culture="neutral" />
            <bindingRedirect oldVersion="7.1.0.0"
             newVersion="7.3.2.0"/>
          </dependentAssembly> 
        </assemblyBinding>
      </runtime>
    </configuration>
    

    If your service is to run in the IBM Spectrum Symphony 7.3.2 environment, you need to add the configuration file to the service package and redeploy the package.