PDK 7.0 - Error 2908/problems installing PerlRT.dll during Perl Dev Kit installation


I get an "Internal error 2908" and then "An error occurred during the installation of assembly 'PerlRT69.dll'..." (or 'PerlRT70.dll,... depending on the version of PDK) during the installation of the Perl Dev Kit. What causes this? How can I proceed with the installation?


The errors above are caused by the machine in question not having a Microsoft .NET runtime installed. There are two ways to handle the situation:

  • install a .NET runtime from Microsoft (.NET 3.0 is not yet supported)
  • restart the PDK installation and deselect the PerlNET component -- it isn't useful without an installed .NET runtime

Either case will allow the installation to proceed.

Distributing PerlRt.dll with your PerlNet component


What do I need to deploy with my PerlNET component?


PerlNET components built with the --freestanding option are not completely freestanding; you also need to deploy perl56.dll (or perl58.dll), perlnh.dll and perlrt.dll.

PerlNH60.dll can be found in the PDK bin directory (usually C:\Perl\bin directory or C:\Program Files\ActiveState Perl Dev Kit 6.0\bin.

PerlRT60.dll is more difficult to find because it is moved to the .NET Global Assembly Cache during installation of the PDK. Copy it out of the GAC by opening a DOS prompt and changing to the PerlRT60 directory:

  c:\> cd c:\WINDOWS\assembly\GAC\PerlRT60\

This directory should contain only one subfolder. Use 'dir' to find the name. For example:

Copy the .dll from this folder like this:

  C:\WINDOWS\assembly\GAC\PerlRT>copy\perlrt60.dll c:\tmp

Note: On Windows 2000 and NT systems, the WINDOWS directory will be called WINNT. With previous versions of the PDK, the DLL filenames do not contain a version numbers (i.e. PerlRT.dll and PerlNH.dll)