Skip to content
Merged

Net10 #329

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Change Log

## [9.0.26013.16420]
- Added .net 10 targets

## [9.0.26013.1000]
- Added version number generation

Expand Down
4 changes: 2 additions & 2 deletions src/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<!-- Rhino.Inside for Rhino >= 9 is gonna support only the latest netcore version supported by Rhino -->
<!-- This is to avoid conflict between dll versions Rhino is built agaist, with dlls or older dotnet runtime -->
<!-- If you absolutely need this to work, talk to curtis @ mcneel -->
<TargetFrameworks>net48;net9.0;net9.0-windows</TargetFrameworks>
<TargetFrameworks>net48;net9.0;net9.0-windows;net10.0;net10.0-windows</TargetFrameworks>
</PropertyGroup>

<PropertyGroup Condition="$(TargetFramework.EndsWith('windows'))">
Expand All @@ -18,7 +18,7 @@
</PropertyGroup>

<PropertyGroup Condition="!$([MSBuild]::IsOSPlatform(windows))">
<TargetFrameworks>net9.0</TargetFrameworks>
<TargetFrameworks>net9.0;net10.0</TargetFrameworks>
</PropertyGroup>

<PropertyGroup>
Expand Down
17 changes: 15 additions & 2 deletions src/RhinoInside/Resolver_NetCore.cs
Original file line number Diff line number Diff line change
Expand Up @@ -124,8 +124,21 @@ static void SetupXamarin()

static void ExecuteLoadProc(AssemblyLoadContext context)
{
int dotnetMajor = Environment.Version.Major;
TryGetAssemblyPathFromName($"dotnetstart.{dotnetMajor}", out string dotnetstartLib);
// Revert to this once dotnetstart.10.dll is available.
// int dotnetMajor = Environment.Version.Major;
// TryGetAssemblyPathFromName($"dotnetstart.{dotnetMajor}", out string dotnetstartLib);

// 2026.03.25 - Luis Fraguada
// Temp workaround to build against .net10 and find dotnetstart.9.dll until dotnetstart.10.dll is available.
// We should remove this loop and directly look for dotnetstart.10.dll once it's available.
string dotnetstartLib = null;
for (int version = Environment.Version.Major; version >= 8; --version)
{
if (TryGetAssemblyPathFromName($"dotnetstart.{version}", out dotnetstartLib))
break;
}
if (dotnetstartLib is null)
throw new RhinoInsideInitializationException($"Could not find dotnetstart dll for .NET {Environment.Version.Major} or earlier in '{RhinoSystemDirectory}'");
var assembly = context.LoadFromAssemblyPath(dotnetstartLib);
var programType = assembly?.GetType("dotnetstart.DotNetInitialization");
var method = programType?.GetMethod("Start");
Expand Down
Loading