mirror of
https://github.com/Smaug123/WoofWare.DotnetRuntimeLocator
synced 2025-10-05 15:28:42 +00:00
35 lines
1.4 KiB
Markdown
35 lines
1.4 KiB
Markdown
# WoofWare.DotnetRuntimeLocator
|
|
|
|
Helpers to locate the .NET runtime and SDKs programmatically.
|
|
(If you're parsing `dotnet --list-runtimes`, you're doing it wrong!)
|
|
|
|
## Usage
|
|
|
|
See [the example](Example/Program.fs).
|
|
|
|
```fsharp
|
|
let info = DotnetEnvironmentInfo.Get ()
|
|
// or, if you already know a path to the `dotnet` executable...
|
|
let info = DotnetEnvironmentInfo.GetSpecific "/path/to/dotnet"
|
|
|
|
// identify the directories containing the framework which would execute a given DLL
|
|
let dirsToSearch : string seq = DotnetRuntime.SelectForDll "/path/to/dll.dll"
|
|
// or, if you would be running with a specific `/path/to/dotnet exec /path/to/dll.dll`:
|
|
let dirsToSearch : string seq = DotnetRuntime.SelectForDll ("/path/to/dll.dll", "/path/to/dotnet")
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
The easiest way to make sure we can find a `dotnet` is to have one on your PATH.
|
|
|
|
If you have a *very* strange setup, we may be unable to locate the `libhostfxr` library we use to find the runtimes.
|
|
In that case, you can supply the environment variable `WOOFWARE_DOTNET_LOCATOR_LIBHOSTFXR`,
|
|
which should be a full path to a `libhostfxr` DLL on your system.
|
|
(Normally this is in `/usr/share/dotnet/host/fxr/{runtime}/libhostfxr.so`;
|
|
you must make sure your version is from runtime 6 or greater,
|
|
because the required symbols were not added until then.)
|
|
|
|
# Licence
|
|
|
|
WoofWare.DotnetRuntimeLocator is licensed to you under the MIT licence, a copy of which can be found at [LICENSE](./LICENSE).
|