Follow the steps below to configure the CLR runtime environment with Virtuoso:

  1. Install .Net Framework SDK.  The .Net Framework can be downloaded from the Microsoft web site.

  2. Install virtclr.dll into the GAC.  The virtclr.dll library supplied with Virtuoso must be installed into the .Net 'Global Assembly Cache (GAC)'.

    .Net library components can be installed into the GAC using the command: gacutil /i <DLL> . The gacutil utility is supplied with the .Net framework. In this case we would use the command:

    gacutil /i virtclr.dll
    
  3. Register virtclr with COM.  The virtclr.dll library must be registered as COM object using the 'regasm' utility as follows:

    regasm virtclr.dll
    
  4. Install virt_http.dll into the GAC.  The virt_http.dll library supplied with Virtuoso must be installed into the .Net 'Global Assembly Cache (GAC)'.

    gacutil /i virt_http.dll
    
[Note] Note:

The utilities gacutil and regasm are typically found in %WINDIR%\Microsoft.NET\Framework\<version> e.g. C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705.288 .

Failure to register the components successfully as described will generate "Virtuoso failed to initialize" messages. The Virtuoso installer, however, should automatically register the components for you.

Private assemblies must be deployed within the directory of the containing application and are found during runtime through a process called probing - a mapping from an assembly's identity to a file on disk that contains the manifest.

By default, probing for private assemblies is done from the root directory (application base) of the calling application (Virtuoso in this case) and the subdirectories that follow naming conventions based on assembly name and culture. You can customize this behavior by specifying a privatePath in your application's configuration file. The privatePath is a semi-colon delimited list of directories that the common language runtime will search for private assemblies. These directory names are relative to the application base - they cannot point outside the application base. The directories in the privatePath will be searched after the application base itself. The following configuration file adds a bin directory to the assembly search path:

<configuration>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <probing privatePath="bin"/>
        </assemblyBinding>
    </runtime>
</configuration>

Configuration files are called: <application name>.config .