The 8.19 release includes an updated msi installer which now installs support for both .NET Framework and .NET Core applications. Some changes to the directory structure were made to streamline this. Additionally, required .NET Core environment variables are automatically configured for IIS apps.
This is now the recommended way to install the agent on Windows regardless of framework.
The msi installer now offers a separate options for .NET Core support. This is enabled by default but can be unselected.
Rather than separate side-by-side installs, the msi will now install both .NET Framework and .NET Core files together.
In the Program Files location two new directories have been created to contain framework specific instrumentation libraries:
C:\Program Files\New Relic\.NET Agent\netframework C:\Program Files\New Relic\.NET Agent\netcore
In the ProgramData location, the .NET Framework and .NET Core apps now share a newrelic.config` and Logs directory simplifying the configuration of apps:
C:\ProgramData\New Relic\.NET Agent\Logs\ C:\ProgramData\New Relic\.NET Agent\newrelic.config
They also share an Extensions directory where you can place your custom instrumentation XML files:
C:\ProgramData\New Relic\.NET Agent\Extensions\
Existing custom instrumentation files will remain in this location. The agent also reads two framework specific extension subdirectories which contain out of the box instrumentation files.
The .NET Agent requires a number of environment variables to be present when .NET apps start up. To simplify installation, the msi installer now configures .NET Core environment variables for IIS apps just as it did previously for .NET Framework apps. These are set in the following IIS registry keys in the “Environment” multi string value:
It will also update the system wide variables but will not enable or disable
CORECLR_ENABLE_PROFILING at this level. This means if you have previously installed the .NET Core Agent with system wide environment variables the installer will automatically update the paths but will NOT automatically instrument all .NET Core apps system wide.