21 out
string resolvedPath)
23 resolvedPath =
string.Empty;
26 AppDomain.CurrentDomain
31 assembly.GetName().Name,
33 StringComparison.OrdinalIgnoreCase) ||
34 string.Equals(assembly.GetName().Name,
"xprsdn", StringComparison.OrdinalIgnoreCase));
36 if (loaded is not
null)
39 string.IsNullOrWhiteSpace(loaded.Location)
46 Environment.GetEnvironmentVariable(
50 if (File.Exists(explicitPath))
52 resolvedPath = Path.GetFullPath(explicitPath);
53 return AssemblyLoadContext.Default.LoadFromAssemblyPath(
57 string xpressDirectory =
58 Environment.GetEnvironmentVariable(
"XPRESSDIR")?.Trim() ??
61 if (!
string.IsNullOrWhiteSpace(xpressDirectory))
65 Path.Combine(xpressDirectory,
"bin",
"Optimizer.dll"),
66 Path.Combine(xpressDirectory,
"lib",
"Optimizer.dll"),
67 Path.Combine(xpressDirectory,
"bin",
"dotnet",
"Optimizer.dll"),
68 Path.Combine(xpressDirectory,
"lib",
"dotnet",
"Optimizer.dll"),
69 Path.Combine(xpressDirectory,
"Optimizer.dll")
72 foreach (
string candidate
in candidates)
74 if (!File.Exists(candidate))
79 resolvedPath = Path.GetFullPath(candidate);
80 return AssemblyLoadContext.Default.LoadFromAssemblyPath(
85 foreach (
string assemblyName
in new[] {
"Optimizer",
"xprsdn" })
89 Assembly assembly = Assembly.Load(assemblyName);
90 resolvedPath =
string.IsNullOrWhiteSpace(assembly.Location)