What are the requirements for using the Legacy .NET API?
Note: Applies to the legacy RTI Connext .NET API (4.3e to 6.1). For the new .NET API (6.1 and above), see the Getting Started Guide.
For applications to use the RTI Connext .NET API, the following MUST be true for the target machine:
- The Microsoft .NET Framework Version 2.0 Redistributable Package (x86) or later must be installed.
You can download it from Microsoft Windows Update or from here: http://www.microsoft.com/downloads/details.aspx?familyid=0856eacb-4362-4b0d-8edd-aab15c5e04f5&displaylang=en - The Microsoft Visual C++ 2005 Redistributable Package (x86) must be installed.
You can download it from here: http://www.microsoft.com/downloads/details.aspx?FamilyId=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=en
The package is also available from the RTI Support Portal; download and execute the filevcredist_x86.exe from the portal's Downloads page.
If this package is not installed, you will see the following error:Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'nddsdotnet, Version=1.0.3.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem. (Exception from HRESULT: 0x800736B1)
- The RTI distribution DLLs, nddsc.dll, nddscore.dll and nddscpp.dll, must be in either the execution directory (for Visual Studio 2005 or 2008 the application’s bin\Debug or bin\Releasedirectory) or another location that is included in the Windows Path environment variable.
Alternatively, prepend %NDDSHOME%/lib/i86Win32dotnet2.0 to the Path environment variable.
If these ndds*.dll files cannot be found in the execution directory or Path, you will see the following error:Unhandled Exception: System.IO.FileNotFoundException: The specified module could not be found. (Exception from HRESULT: 0x8007007E) at waitsetsPublisher.Main(String[] args)
- The created <Foo_type>.dll (where Foo is the name of the datatype) and nddsdotnet.dll must be in the execution directory (for Visual Studio 2005 or 2008 copy them over from Debug or Release to bin\Debug or bin\Release), as opposed to someplace else that is included in the Path. This is because these DLLs are .NET assemblies.
A .NET assembly must be in either the execution directory or the GAC (global catalog). These files are created when you build Foo-csharp.sln in Visual C#, so you do not have to copynddsdotnet.dll from NDDSHOME\lib\i86Win32dotnet2.0 to the application Debug or Releasedirectory.
If Foo_type.dll or nddsdotnet.dll is not in the execution directory, you will see the following error:Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'nddsdotnet, Version=1.0.3.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified. File name: 'nddsdotnet, Version=1.0.3.0, Culture=neutral, PublicKeyToken=null' at xxxxx.Main String[] args)
Only the Release version (as opposed to the Debug version) can run on non-development machines (i.e., machines without Visual Studio) because Microsoft only issues release DLLs in redistribution.
Note: See also: Can I use Visual Studio Express to build RTI Connext applications?