Requirements

Required third-party software

To successfully deliver and analyze .NET code, the following third-party software is required:

Install on workstation running the AIP Console / DMT (for delivery)

Nothing required.

Some frameworks/third-party packages are shipped with the extension.

When using the legacy DMT, if your source code references specific frameworks or third-party packages, then these will be required on the workstation running the DMT for packaging purposes.

Install on workstation running AIP Node / CMS (for analysis)

.NET Framework ≥ 4.7.2 must be installed in order for the analysis to function. A check will be done when the analysis starts and a message will produced if the minimum .NET Framework cannot be found.

Note that a .NET Framework is installed with the AIP Core setup, however this may not be the required version. Please check.


Location of the source code deployment folder

It is possible to configure the source code Deployment folder on a network share (as discussed in Configure AIP Node storage folder locations - optional - v. 1.x. However, in the case of .NET analyses CAST recommends that the Deployment folder is located on the same server as the AIP Node. If the Deployment folder is located on a remote network file share, there is a risk that assemblies may not be loaded correctly during the analysis, causing external objects to not be saved.

Location of extensions folder

If you have altered the location where extensions are stored to a network location remote to the AIP Node (for example changing the CAST_PLUGINS_ROOT_PATH in the CastGlobalSettings.ini file) then you will need to add the following lines to the .NET Framework machine.config file (located on the machine where the analysis is being run). This is to ensure that the .NET Analyzer DLLs located in the remote network folder can be successfully run from a network location. The analysis will fail without this configuration.

Replace the following tag:

<runtime />

with:

<runtime>
    <loadFromRemoteSources enabled="true"/>
</runtime>