Skip to content

Retarget projects to .NET 10 - #2642

Open
krwq wants to merge 1 commit into
mainfrom
krwq-net-10-target-framework
Open

krwq wants to merge 1 commit into
mainfrom
krwq-net-10-target-framework

Conversation

@krwq

@krwq krwq commented Nov 13, 2026 •

Copy link
Copy Markdown
Member

This pull request was generated with GitHub Copilot.

Retarget the libraries, device bindings, samples, tools, and Arduino C# compiler to .NET 10. Update SDK/runtime pins, CI paths, signing, documentation, and package validation for the intentionally removed target framework. Address new .NET 10 analyzer warnings and test media conversion with short and truncated reads.

Breaking change: New packages require .NET 10; .NET 8 and .NET 9 consumers must use an earlier package version or upgrade. Since the previous package and the new package have no common target framework, baseline package validation no longer compares their APIs automatically.

The Arduino embedded runtime's existing last-tested version is unchanged: .NET 10 execution on embedded hardware has not been verified.

Validation

  • .\Build.cmd -configuration Release -verbosity quiet — passed after restoring the Arduino compiler's Release dependency graph; an earlier attempt encountered conflicting Debug/Release project references.
  • dotnet test src\devices\Media\tests\Media.Tests.csproj -c Release --nologo — passed, 4 tests.
  • dotnet test src\System.Device.Gpio.Tests\System.Device.Gpio.Tests.csproj -c Release --no-build --no-restore --nologo --filter 'FullyQualifiedName~PinValueTests|FullyQualifiedName~GpioControllerSoftwareTests|FullyQualifiedName~GpioPinTests|FullyQualifiedName~SpiBusInfoTests' — passed, 19 tests.
  • dotnet test tools\ArduinoCsCompiler\tests\ArduinoCsCompiler.Tests.csproj --verbosity quiet — passed, 20 tests; hardware tests excluded by the project.
  • dotnet pack src\System.Device.Gpio\System.Device.Gpio.csproj -c Release --no-restore --nologo -v:quiet, dotnet pack src\Iot.Device.Bindings\Iot.Device.Bindings.csproj -c Release --no-restore --nologo -v:quiet, and dotnet pack src\Iot.Device.Bindings.SkiaSharpAdapter\Iot.Device.Bindings.SkiaSharpAdapter.csproj -c Release --no-restore --nologo -v:quiet — passed; packages contain only net10.0 assemblies.
  • dotnet build samples\led-blink\led-blink.csproj -c Release --nologo -v:quiet, dotnet build tools\ArduinoCsCompiler\samples\BlinkingLed\BlinkingLed.csproj --verbosity quiet, and dotnet build src\devices\Media\VideoDevice\samples\MjpegStream\MjpegStream.csproj --verbosity quiet — passed.
  • dotnet test src\System.Device.Gpio.Tests\System.Device.Gpio.Tests.csproj -c Release --no-restore --nologo — failed on Windows without the required hardware/platform support (131 failed, 20 passed, 1 skipped). Hardware execution was not verified.
Microsoft Reviewers: Open in CodeFlow

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@dotnet-policy-service dotnet-policy-service Bot added area-System.Device.Gpio Contains types for using general-purpose I/O (GPIO) pins area-device-bindings Device Bindings for audio, sensor, motor, and display hardware that can used with System.Device.Gpio labels Nov 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-device-bindings Device Bindings for audio, sensor, motor, and display hardware that can used with System.Device.Gpio area-System.Device.Gpio Contains types for using general-purpose I/O (GPIO) pins

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant