PrimoBurner

PrimoBurner, DVDBuilder and PrimoMpeg runtime requirements – Part 2

As it was stated in a previous post, the .NET versions of PrimoBurner, DVDBuilder and PrimoMpeg require a specific VC runtime on Windows.

Each .NET assembly that we provide (PrimoBurner.NET.dll, DVDBuilder.NET.dll, PrimoMpeg.NET.dll) contains a manifest in whichthe requiredCRTis described. That CRT dependency is something that is not easily controlled as it is a consequence of several factors: Visual Studio version (20005/2008), VS service packs, Windows Updates andpre-processor #defines.

So, instead of forcing a .NET assembly to link against a specific CRT version, we provide here the merge modules for the CRT that we use.

The following CRT dependency list gives the required CRT version and the merge modules for our .NET products:

For:

you should use the CRT8.0.50727.4053merge modules:

For:

you should use the CRT9.0.30729.4148 merge modules:

You are not required to use the policy (andwe don’t use it in our SDK installers). The policy merely redirects existing applications which use an older CRT to the currently installed version. This may help when a program uses 3rd-party components which have different CRT dependencies. In this case the application needs to provide only the highest CRT version that it uses and the corresponding policy. CRT redirection does not work between major versions (8.0.* and 9.0.*).

It is much safer to include the appropriate CRT merge modules in the installer than using vcredist_<arch>.exe.It is safer because the merge modules use reference counting and this guarantees that the CRT won’t be removed from the system as long as the application is installed.

On the other hand VC Redist does not use reference counting and it may be removed either by another misbehaving uninstaller or by the user(since the VC Redist entry is not related to the application entry). That may break existing applications.