Exporter failing to load with "Could not load file or assembly" message
Last Updated November 03, 2014
The customer was testing the migration of data from his NS 6 production server and did not want to install SIM on the server. Instead the "upgrade" folder was copied from the NS 7 server over to the NS 6 server.
This was done with the NS 7 Sp2 (5201) version the the "upgrade" folder and the data exporter fine.
Now that he has upgraded to NS 7 SP4 and copied the "upgrade" folder over, several of the SoftwareManagement exporters fail to load.
<![CDATA[Failed to initialize exporter Mac Inventory Policy Exporter from product Mac Inventory Solution ( Unhandled exception. Type=System.IO.FileLoadException Msg=Could not load file or assembly 'Altiris.ImportExportEngine, Version=7.0.7270.0, Culture=neutral, PublicKeyToken=d516cb311cfb6e4f' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) Src=mscorlib
at System.Reflection.Assembly._GetType(String name, Boolean throwOnError, Boolean ignoreCase)
at Altiris.ImportExportEngine.Engine.InitializeExporter(ExporterConfiguration exporterConfig, List`1 exportersCollection) )]]>
NOTE: On the NS 7 Server, if the migration utility was installed via SIM, there should be a Program Files\Altiris\Symantec Installation Manager\Migration package that contains a migration.exe file. Copy this file to the NS 6 server. If builds the upgrade folder with the correct exporters and inserted the correct dlls into the GAC.
When the migration wizard runs, it installs some assemblies in the GAC and updates keys in the registry with the assembly versions and pointers to the assembly files. If the assembly versions in the GAC don't match the versions of the exporters in the upgrade folder exporters will fail to load.
The best resolution is to install SIM on the NS 6 server and then the migration wizard. This should upgrade the assemblies appropriately. However, SIM requires .NET 3.5 be installed first which requires a reboot. This may not be possible in some production environments. The other option is to replace the GAC files with the current verions that match the versions of the exporters.
The registry location HKLM\Software\Microsoft\Fusion\PublisherPolicy\Default\ Policy.7.0.Altiris.ImportExportEngine__d516cb3
These GAC locations are only accessible via a DOS shell. Run CMD to get to a DOS window and navigate to C:\Windows\Assembly\GAC_MSIL\Policy.7.0.Altiris.ImportExportEngine\7.0.7416.0__d516cb311cf6e4f. Rename or replace the two files with the correct version:
Navigate to C:\Windows\Assembly\GAC_MSIL\Policy.7.0.Altiris.NS.Exporters.6.0\7.0.7416.0__d516cb311cf6e4f. Rename or replace the two files with the correct version:
Navigate to C:\Windows\Assembly\GAC_MSIL\Policy.7.0.Altiris.database\7.0.7416.0__d516cb311cf6e4f.Rename or replace the two files with the correct version:
The NS 7 SP4 version of these assemblies are attached to this ticket. It isn't necessary to rename the registry keys or the folders to the new version numbers. As long as assembly file versions match those of the exporters, the exporters appear to load.
Applies To NS 6 Sp3 with Upgrade directory from NS 7 SP4 copied over to it.