Skip to content

Migrate all samples to SDK-style projects#464

Draft
danielmeza wants to merge 1 commit into
nanoframework:mainfrom
danielmeza:move-to-sdk
Draft

Migrate all samples to SDK-style projects#464
danielmeza wants to merge 1 commit into
nanoframework:mainfrom
danielmeza:move-to-sdk

Conversation

@danielmeza

@danielmeza danielmeza commented Jun 16, 2026

Copy link
Copy Markdown

Description

  • Migrate every sample from the legacy .nfproj project system to SDK-style
    <Project Sdk="nanoFramework.NET.Sdk"> projects (netnano1.0, PackageReference), produced by
    the dotnet nano migrate tool.
  • 154 projects converted across 111 solutions; packages.config and generated AssemblyInfo
    removed; solutions retargeted via the official Microsoft.VisualStudio.SolutionPersistence
    library
    (both .sln and .slnx: project-type GUID → SDK C#/CPS GUID, path .nfproj
    .csproj).
  • PackageReference ids and versions come from each project's packages.config; .nuspec
    metadata is folded into Pack properties; native-stub libraries keep their AssemblyInfo.cs
    (GenerateAssemblyInfo=false); resq/shared-project samples handled (no duplicate items,
    .projitems imports preserved).
  • Post-migration fixes: 1-Wire/OneWire.TestApp gains the nanoFramework.Hardware.Esp32 reference
    it uses (absent from the legacy packages.config); Interop/test-application references the
    interop stub library via a ProjectReference (the legacy project used a bin\ HintPath). A stray
    empty Azure-ServiceBus-Sender/Sender project (orphan .nfproj, not in any solution) was removed.

Motivation and Context

How Has This Been Tested?

  • dotnet nano migrate over the whole repo: 154 projects converted, 0 review flags, 0 errors; the
    tool is idempotent + reentrant (re-running is a no-op).
  • Full dotnet build sweep of every SDK-style project: 152 / 154 build. The two failures are the
    AMQP apps, which carry pre-existing inconsistent legacy package versions (NU1605) and half-modernized
    WiFi code — a sample-maintenance task, not a migration defect (the conversion was faithful). The
    Desktop* helpers are regular .NET Framework projects (not nanoFramework) and are untouched.

Types of changes

  • Improvement (non-breaking change that improves a feature, code or algorithm)
  • Bug fix (non-breaking change which fixes an issue with code or algorithm)
  • New feature (non-breaking change which adds functionality to code)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Config and build (change in the configuration and build system, has no impact on code or features)
  • Dependencies (update dependencies and changes associated, has no impact on code or features)
  • Unit Tests (add new Unit Test(s) or improved existing one(s), has no impact on code or features)
  • Documentation (changes or updates in the documentation, has no impact on code or features)

Checklist:

  • My code follows the code style of this project (only if there are changes in source code).
  • My changes require an update to the documentation (there are changes that require the docs website to be updated).
  • I have updated the documentation accordingly (the changes require an update on the docs in this repo).
  • I have read the CONTRIBUTING document.
  • I have tested everything locally and all new and existing tests passed (only if there are changes in source code).
  • I have added new tests to cover my changes.

Draft — depends on the SDK shipping. The samples consume nanoFramework.NET.Sdk, not yet on
nuget.org. The repo carries a dev-local global.json (pins the SDK) and a NuGet.Config with a
local-sdk source; before merge remove that local source and pin the published SDK version.
Best reviewed/merged after nanoframework/nanoFramework.Sdk#2.

Samples still on v1 packages compile their app to NFMRK2 but pull v1 (NFMRK1) dependency
assemblies; aligning the whole graph to v2 is a follow-up package bump (gated on v2 package
availability). The AMQP samples need a coordinated package + WiFi-API modernization.

@coderabbitai

coderabbitai Bot commented Jun 16, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 300 files, which is 150 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

⚙️ Run configuration

Configuration used: Repository: nanoframework/coderabbit/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: cd9da603-2839-435a-bca1-8255faa05aa6

📥 Commits

Reviewing files that changed from the base of the PR and between 93e47c5 and 040b669.

📒 Files selected for processing (300)
  • Archive/GpioChangeCounter/GpioChangeCounter.sln
  • Archive/GpioChangeCounter/GpioChangeCounter/GpioChangeCounter.csproj
  • Archive/GpioChangeCounter/GpioChangeCounter/GpioChangeCounter.nfproj
  • Archive/GpioChangeCounter/GpioChangeCounter/Properties/AssemblyInfo.cs
  • Archive/GpioChangeCounter/GpioChangeCounter/packages.config
  • Archive/Storage/AccessRemovableDevices/AccessRemovableDevices.csproj
  • Archive/Storage/AccessRemovableDevices/AccessRemovableDevices.nfproj
  • Archive/Storage/AccessRemovableDevices/Properties/AssemblyInfo.cs
  • Archive/Storage/AccessRemovableDevices/packages.config
  • Archive/Storage/FileAccess/FileAccess.csproj
  • Archive/Storage/FileAccess/FileAccess.nfproj
  • Archive/Storage/FileAccess/Properties/AssemblyInfo.cs
  • Archive/Storage/FileAccess/packages.config
  • Archive/Storage/MountDevices/MountDevices.csproj
  • Archive/Storage/MountDevices/MountDevices.nfproj
  • Archive/Storage/MountDevices/Properties/AssemblyInfo.cs
  • Archive/Storage/MountDevices/packages.config
  • Archive/Storage/RemovableDeviceEvent/Properties/AssemblyInfo.cs
  • Archive/Storage/RemovableDeviceEvent/RemovableDeviceEvent.csproj
  • Archive/Storage/RemovableDeviceEvent/RemovableDeviceEvent.nfproj
  • Archive/Storage/RemovableDeviceEvent/packages.config
  • Archive/Storage/Storage.sln
  • Archive/Windows.Devices.I2c/Display/I2C.csproj
  • Archive/Windows.Devices.I2c/Display/I2C.nfproj
  • Archive/Windows.Devices.I2c/Display/I2C.sln
  • Archive/Windows.Devices.I2c/Display/Properties/AssemblyInfo.cs
  • Archive/Windows.Devices.I2c/Display/packages.config
  • Archive/Windows.Devices.I2c/GPS/nanoframework.Samples.GPS.sln
  • Archive/Windows.Devices.I2c/GPS/nanoframework.Samples.GPS/Properties/AssemblyInfo.cs
  • Archive/Windows.Devices.I2c/GPS/nanoframework.Samples.GPS/nanoframework.Samples.GPS.csproj
  • Archive/Windows.Devices.I2c/GPS/nanoframework.Samples.GPS/nanoframework.Samples.GPS.nfproj
  • Archive/Windows.Devices.I2c/GPS/nanoframework.Samples.GPS/packages.config
  • Archive/Windows.Devices.Pwm/PWM.csproj
  • Archive/Windows.Devices.Pwm/PWM.nfproj
  • Archive/Windows.Devices.Pwm/PWM.sln
  • Archive/Windows.Devices.Pwm/Properties/AssemblyInfo.cs
  • Archive/Windows.Devices.Pwm/packages.config
  • Archive/Windows.Devices.SerialCommunication/Properties/AssemblyInfo.cs
  • Archive/Windows.Devices.SerialCommunication/SerialCommunication.csproj
  • Archive/Windows.Devices.SerialCommunication/SerialCommunication.nfproj
  • Archive/Windows.Devices.SerialCommunication/SerialCommunication.sln
  • Archive/Windows.Devices.SerialCommunication/packages.config
  • Archive/Windows.Devices.Spi/Properties/AssemblyInfo.cs
  • Archive/Windows.Devices.Spi/SPI.csproj
  • Archive/Windows.Devices.Spi/SPI.nfproj
  • Archive/Windows.Devices.Spi/SPI.sln
  • Archive/Windows.Devices.Spi/packages.config
  • NuGet.Config
  • global.json
  • migration-report.md
  • samples/1-Wire/OneWire.TestApp.csproj
  • samples/1-Wire/OneWire.TestApp.nfproj
  • samples/1-Wire/OneWire.TestApp.sln
  • samples/1-Wire/Properties/AssemblyInfo.cs
  • samples/1-Wire/packages.config
  • samples/ADC/ADC.csproj
  • samples/ADC/ADC.nfproj
  • samples/ADC/ADC.sln
  • samples/ADC/Properties/AssemblyInfo.cs
  • samples/ADC/packages.config
  • samples/AMQP/Amqp.Samples.sln
  • samples/AMQP/Azure-IoT-Hub/Azure-IoT-Hub.csproj
  • samples/AMQP/Azure-IoT-Hub/Azure-IoT-Hub.nfproj
  • samples/AMQP/Azure-IoT-Hub/Properties/AssemblyInfo.cs
  • samples/AMQP/Azure-IoT-Hub/packages.config
  • samples/AMQP/Azure-ServiceBus-Sender/Azure-ServiceBus-Sender.csproj
  • samples/AMQP/Azure-ServiceBus-Sender/Azure-ServiceBus-Sender.nfproj
  • samples/AMQP/Azure-ServiceBus-Sender/Properties/AssemblyInfo.cs
  • samples/AMQP/Azure-ServiceBus-Sender/Sender.nfproj
  • samples/AMQP/Azure-ServiceBus-Sender/packages.config
  • samples/AzureMQTTTwinsBMP280Sleep/AzureMQTT.sln
  • samples/AzureMQTTTwinsBMP280Sleep/AzureMQTT/AzureMQTT.csproj
  • samples/AzureMQTTTwinsBMP280Sleep/AzureMQTT/AzureMQTT.nfproj
  • samples/AzureMQTTTwinsBMP280Sleep/AzureMQTT/Properties/AssemblyInfo.cs
  • samples/AzureMQTTTwinsBMP280Sleep/AzureMQTT/packages.config
  • samples/AzureSDK/AzureEdgeOta/AzureEdgeOTA.sln
  • samples/AzureSDK/AzureEdgeOta/AzureEdgeOTAEngine/AzureEdgeOTAEngine.csproj
  • samples/AzureSDK/AzureEdgeOta/AzureEdgeOTAEngine/AzureEdgeOTAEngine.nfproj
  • samples/AzureSDK/AzureEdgeOta/AzureEdgeOTAEngine/Properties/AssemblyInfo.cs
  • samples/AzureSDK/AzureEdgeOta/AzureEdgeOTAEngine/packages.config
  • samples/AzureSDK/AzureEdgeOta/CountMeasurement/CountMeasurement.csproj
  • samples/AzureSDK/AzureEdgeOta/CountMeasurement/CountMeasurement.nfproj
  • samples/AzureSDK/AzureEdgeOta/CountMeasurement/packages.config
  • samples/AzureSDK/AzureIoTPnP/AzureIoTPnP.csproj
  • samples/AzureSDK/AzureIoTPnP/AzureIoTPnP.nfproj
  • samples/AzureSDK/AzureIoTPnP/AzureIoTPnP.sln
  • samples/AzureSDK/AzureIoTPnP/Properties/AssemblyInfo.cs
  • samples/AzureSDK/AzureIoTPnP/packages.config
  • samples/AzureSDK/AzureSDK/AzureIoTExample.csproj
  • samples/AzureSDK/AzureSDK/AzureIoTExample.nfproj
  • samples/AzureSDK/AzureSDK/AzureIoTExample.sln
  • samples/AzureSDK/AzureSDK/Properties/AssemblyInfo.cs
  • samples/AzureSDK/AzureSDK/packages.config
  • samples/AzureSDK/AzureSDKBasic/AzureSDKBasic.csproj
  • samples/AzureSDK/AzureSDKBasic/AzureSDKBasic.nfproj
  • samples/AzureSDK/AzureSDKBasic/AzureSDKBasic.sln
  • samples/AzureSDK/AzureSDKBasic/Properties/AssemblyInfo.cs
  • samples/AzureSDK/AzureSDKBasic/packages.config
  • samples/AzureSDK/AzureSDKBasicFullyManaged/AzureSDKBasic.csproj
  • samples/AzureSDK/AzureSDKBasicFullyManaged/AzureSDKBasic.nfproj
  • samples/AzureSDK/AzureSDKBasicFullyManaged/AzureSDKBasic.sln
  • samples/AzureSDK/AzureSDKBasicFullyManaged/Properties/AssemblyInfo.cs
  • samples/AzureSDK/AzureSDKBasicFullyManaged/packages.config
  • samples/AzureSDK/AzureSDKSensorCertificate/NFSensorAzureIoTHub.sln
  • samples/AzureSDK/AzureSDKSensorCertificate/NFSensorAzureIoTHub/NFSensorAzureIoTHub.csproj
  • samples/AzureSDK/AzureSDKSensorCertificate/NFSensorAzureIoTHub/NFSensorAzureIoTHub.nfproj
  • samples/AzureSDK/AzureSDKSensorCertificate/NFSensorAzureIoTHub/Properties/AssemblyInfo.cs
  • samples/AzureSDK/AzureSDKSensorCertificate/NFSensorAzureIoTHub/packages.config
  • samples/AzureSDK/AzureSDKSleepBMP280/AzureSDKSleepBMP280.csproj
  • samples/AzureSDK/AzureSDKSleepBMP280/AzureSDKSleepBMP280.nfproj
  • samples/AzureSDK/AzureSDKSleepBMP280/AzureSDKSleepBMP280.sln
  • samples/AzureSDK/AzureSDKSleepBMP280/Properties/AssemblyInfo.cs
  • samples/AzureSDK/AzureSDKSleepBMP280/packages.config
  • samples/AzureSDK/DpsSampleApp/DpsSampleApp.csproj
  • samples/AzureSDK/DpsSampleApp/DpsSampleApp.nfproj
  • samples/AzureSDK/DpsSampleApp/DpsSampleApp.sln
  • samples/AzureSDK/DpsSampleApp/Properties/AssemblyInfo.cs
  • samples/AzureSDK/DpsSampleApp/packages.config
  • samples/Beginner/AnalogRainSensor/7-AnalogRainSensor.csproj
  • samples/Beginner/AnalogRainSensor/7-AnalogRainSensor.nfproj
  • samples/Beginner/AnalogRainSensor/Properties/AssemblyInfo.cs
  • samples/Beginner/AnalogRainSensor/packages.config
  • samples/Beginner/Beginner.sln
  • samples/Beginner/BlinkLed/1-BlinkLed.csproj
  • samples/Beginner/BlinkLed/1-BlinkLed.nfproj
  • samples/Beginner/BlinkLed/Properties/AssemblyInfo.cs
  • samples/Beginner/BlinkLed/packages.config
  • samples/Beginner/Button/2-Button.csproj
  • samples/Beginner/Button/2-Button.nfproj
  • samples/Beginner/Button/Properties/AssemblyInfo.cs
  • samples/Beginner/Button/packages.config
  • samples/Beginner/ButtonNuget/3-ButtonNuget.csproj
  • samples/Beginner/ButtonNuget/3-ButtonNuget.nfproj
  • samples/Beginner/ButtonNuget/Properties/AssemblyInfo.cs
  • samples/Beginner/ButtonNuget/packages.config
  • samples/Beginner/Buzzer/5-Buzzer.csproj
  • samples/Beginner/Buzzer/5-Buzzer.nfproj
  • samples/Beginner/Buzzer/Properties/AssemblyInfo.cs
  • samples/Beginner/Buzzer/packages.config
  • samples/Beginner/PwmLed/4-PwmLed.csproj
  • samples/Beginner/PwmLed/4-PwmLed.nfproj
  • samples/Beginner/PwmLed/Properties/AssemblyInfo.cs
  • samples/Beginner/PwmLed/packages.config
  • samples/Beginner/ServoMotor/6-ServoMotor.csproj
  • samples/Beginner/ServoMotor/6-ServoMotor.nfproj
  • samples/Beginner/ServoMotor/Properties/AssemblyInfo.cs
  • samples/Beginner/ServoMotor/packages.config
  • samples/Beginner/TempHumI2c/8-TempHumI2c.csproj
  • samples/Beginner/TempHumI2c/8-TempHumI2c.nfproj
  • samples/Beginner/TempHumI2c/Properties/AssemblyInfo.cs
  • samples/Beginner/TempHumI2c/packages.config
  • samples/Blinky/Blinky.sln
  • samples/Blinky/Blinky/Blinky.csproj
  • samples/Blinky/Blinky/Blinky.nfproj
  • samples/Blinky/Blinky/Properties/AssemblyInfo.cs
  • samples/Blinky/Blinky/packages.config
  • samples/Bluetooth/BluetoothBeacon/BluetoothBeacon.csproj
  • samples/Bluetooth/BluetoothBeacon/BluetoothBeacon.nfproj
  • samples/Bluetooth/BluetoothBeacon/BluetoothBeacon.sln
  • samples/Bluetooth/BluetoothBeacon/Properties/AssemblyInfo.cs
  • samples/Bluetooth/BluetoothBeacon/packages.config
  • samples/Bluetooth/BluetoothLESample1/BluetoothLESample1.csproj
  • samples/Bluetooth/BluetoothLESample1/BluetoothLESample1.nfproj
  • samples/Bluetooth/BluetoothLESample1/BluetoothLESample1.sln
  • samples/Bluetooth/BluetoothLESample1/Properties/AssemblyInfo.cs
  • samples/Bluetooth/BluetoothLESample1/packages.config
  • samples/Bluetooth/BluetoothLESample2/BluetoothLESample2.csproj
  • samples/Bluetooth/BluetoothLESample2/BluetoothLESample2.nfproj
  • samples/Bluetooth/BluetoothLESample2/BluetoothLESample2.sln
  • samples/Bluetooth/BluetoothLESample2/Properties/AssemblyInfo.cs
  • samples/Bluetooth/BluetoothLESample2/packages.config
  • samples/Bluetooth/BluetoothLESample3/BluetoothLESample3.csproj
  • samples/Bluetooth/BluetoothLESample3/BluetoothLESample3.nfproj
  • samples/Bluetooth/BluetoothLESample3/BluetoothLESample3.sln
  • samples/Bluetooth/BluetoothLESample3/Properties/AssemblyInfo.cs
  • samples/Bluetooth/BluetoothLESample3/packages.config
  • samples/Bluetooth/BluetoothLESerial/BluetoothLESerial.csproj
  • samples/Bluetooth/BluetoothLESerial/BluetoothLESerial.nfproj
  • samples/Bluetooth/BluetoothLESerial/BluetoothLESerial.sln
  • samples/Bluetooth/BluetoothLESerial/Properties/AssemblyInfo.cs
  • samples/Bluetooth/BluetoothLESerial/packages.config
  • samples/Bluetooth/BroadcastValues/BroadcastValues.csproj
  • samples/Bluetooth/BroadcastValues/BroadcastValues.nfproj
  • samples/Bluetooth/BroadcastValues/BroadcastValues.sln
  • samples/Bluetooth/BroadcastValues/Properties/AssemblyInfo.cs
  • samples/Bluetooth/BroadcastValues/packages.config
  • samples/Bluetooth/Central1/Central1.csproj
  • samples/Bluetooth/Central1/Central1.nfproj
  • samples/Bluetooth/Central1/Central1.sln
  • samples/Bluetooth/Central1/Properties/AssemblyInfo.cs
  • samples/Bluetooth/Central1/packages.config
  • samples/Bluetooth/Central2/Central2.csproj
  • samples/Bluetooth/Central2/Central2.nfproj
  • samples/Bluetooth/Central2/Central2.sln
  • samples/Bluetooth/Central2/Properties/AssemblyInfo.cs
  • samples/Bluetooth/Central2/packages.config
  • samples/Bluetooth/Central3/Central3.csproj
  • samples/Bluetooth/Central3/Central3.nfproj
  • samples/Bluetooth/Central3/Central3.sln
  • samples/Bluetooth/Central3/Properties/AssemblyInfo.cs
  • samples/Bluetooth/Central3/packages.config
  • samples/Bluetooth/ImprovWifi/ImprovWifi.csproj
  • samples/Bluetooth/ImprovWifi/ImprovWifi.nfproj
  • samples/Bluetooth/ImprovWifi/ImprovWifi.sln
  • samples/Bluetooth/ImprovWifi/Properties/AssemblyInfo.cs
  • samples/Bluetooth/ImprovWifi/packages.config
  • samples/Bluetooth/WatcherFilters/Properties/AssemblyInfo.cs
  • samples/Bluetooth/WatcherFilters/WatcherFilters.csproj
  • samples/Bluetooth/WatcherFilters/WatcherFilters.nfproj
  • samples/Bluetooth/WatcherFilters/WatcherFilters.sln
  • samples/Bluetooth/WatcherFilters/packages.config
  • samples/CAN/Can.TestApp.sln
  • samples/CAN/Can.TestApp/Can.TestApp.csproj
  • samples/CAN/Can.TestApp/Can.TestApp.nfproj
  • samples/CAN/Can.TestApp/Properties/AssemblyInfo.cs
  • samples/CAN/Can.TestApp/packages.config
  • samples/Collections/Collections.sln
  • samples/Collections/Collections/Collections.csproj
  • samples/Collections/Collections/Collections.nfproj
  • samples/Collections/Collections/Properties/AssemblyInfo.cs
  • samples/Collections/Collections/packages.config
  • samples/Converter.Base64/Base64Test.sln
  • samples/Converter.Base64/Base64Test/Base64Test.csproj
  • samples/Converter.Base64/Base64Test/Base64Test.nfproj
  • samples/Converter.Base64/Base64Test/Properties/AssemblyInfo.cs
  • samples/Converter.Base64/Base64Test/packages.config
  • samples/DAC/DacSample.sln
  • samples/DAC/DacSample/DacSample.csproj
  • samples/DAC/DacSample/DacSample.nfproj
  • samples/DAC/DacSample/Properties/AssemblyInfo.cs
  • samples/DAC/DacSample/packages.config
  • samples/DebugGC.Test/DebugGC.Test.csproj
  • samples/DebugGC.Test/DebugGC.Test.nfproj
  • samples/DebugGC.Test/DebugGC.Test.sln
  • samples/DebugGC.Test/Properties/AssemblyInfo.cs
  • samples/DebugGC.Test/packages.config
  • samples/DependencyInjection/Simple/Properties/AssemblyInfo.cs
  • samples/DependencyInjection/Simple/Simple.csproj
  • samples/DependencyInjection/Simple/Simple.nfproj
  • samples/DependencyInjection/Simple/Simple.sln
  • samples/DependencyInjection/Simple/packages.config
  • samples/DependencyInjection/SlowBlink/SlowBlink.csproj
  • samples/DependencyInjection/SlowBlink/SlowBlink.nfproj
  • samples/DependencyInjection/SlowBlink/SlowBlink.sln
  • samples/DependencyInjection/SlowBlink/packages.config
  • samples/ExecutionConstraint/ExecutionConstraint.sln
  • samples/ExecutionConstraint/ExecutionConstraint/ExecutionConstraint.csproj
  • samples/ExecutionConstraint/ExecutionConstraint/ExecutionConstraint.nfproj
  • samples/ExecutionConstraint/ExecutionConstraint/Properties/AssemblyInfo.cs
  • samples/ExecutionConstraint/ExecutionConstraint/packages.config
  • samples/GCStressTest/GCStressTest.csproj
  • samples/GCStressTest/GCStressTest.nfproj
  • samples/GCStressTest/GCStressTest.sln
  • samples/GCStressTest/Properties/AssemblyInfo.cs
  • samples/GCStressTest/packages.config
  • samples/GiantGecko.Adc/ContinuousSampling/ContinuousSampling.csproj
  • samples/GiantGecko.Adc/ContinuousSampling/ContinuousSampling.nfproj
  • samples/GiantGecko.Adc/ContinuousSampling/Properties/AssemblyInfo.cs
  • samples/GiantGecko.Adc/ContinuousSampling/packages.config
  • samples/GiantGecko.Adc/Gecko ADC samples.sln
  • samples/GiantGecko.Adc/Read.Channel/Properties/AssemblyInfo.cs
  • samples/GiantGecko.Adc/Read.Channel/Read.Channel.csproj
  • samples/GiantGecko.Adc/Read.Channel/Read.Channel.nfproj
  • samples/GiantGecko.Adc/Read.Channel/packages.config
  • samples/Gpio/Esp32PulseCounter/Esp32PulseCounter.csproj
  • samples/Gpio/Esp32PulseCounter/Esp32PulseCounter.nfproj
  • samples/Gpio/Esp32PulseCounter/Esp32PulseCounter.sln
  • samples/Gpio/Esp32PulseCounter/Properties/AssemblyInfo.cs
  • samples/Gpio/Esp32PulseCounter/packages.config
  • samples/Gpio/Gpio+Events/Gpio+Events.csproj
  • samples/Gpio/Gpio+Events/Gpio+Events.nfproj
  • samples/Gpio/Gpio+Events/Gpio+Events.sln
  • samples/Gpio/Gpio+Events/Properties/AssemblyInfo.cs
  • samples/Gpio/Gpio+Events/packages.config
  • samples/Gpio/Gpio+EventsIoTStyle/Gpio+Events(IoT).csproj
  • samples/Gpio/Gpio+EventsIoTStyle/Gpio+Events(IoT).nfproj
  • samples/Gpio/Gpio+EventsIoTStyle/Gpio+Events(IoT).sln
  • samples/Gpio/Gpio+EventsIoTStyle/Properties/AssemblyInfo.cs
  • samples/Gpio/Gpio+EventsIoTStyle/packages.config
  • samples/Graphics/GenericDriver/GenericDriver.csproj
  • samples/Graphics/GenericDriver/GenericDriver.nfproj
  • samples/Graphics/GenericDriver/GenericDriver.sln
  • samples/Graphics/GenericDriver/Properties/AssemblyInfo.cs
  • samples/Graphics/GenericDriver/packages.config
  • samples/Graphics/Primitives/Primitives.csproj
  • samples/Graphics/Primitives/Primitives.nfproj
  • samples/Graphics/Primitives/Primitives.sln
  • samples/Graphics/Primitives/Properties/AssemblyInfo.cs
  • samples/Graphics/Primitives/packages.config
  • samples/Graphics/Screens/m5stack-screen/Properties/AssemblyInfo.cs
  • samples/Graphics/Screens/m5stack-screen/m5stack.screen.csproj
  • samples/Graphics/Screens/m5stack-screen/m5stack.screen.nfproj
  • samples/Graphics/Screens/m5stack-screen/m5stack.screen.sln
  • samples/Graphics/Screens/m5stack-screen/packages.config
  • samples/Graphics/Screens/m5stick-screen/Properties/AssemblyInfo.cs
  • samples/Graphics/Screens/m5stick-screen/m5stick.screen.csproj
  • samples/Graphics/Screens/m5stick-screen/m5stick.screen.nfproj
  • samples/Graphics/Screens/m5stick-screen/m5stick.screen.sln
  • samples/Graphics/Screens/m5stick-screen/packages.config
  • samples/Graphics/SimpleWpf/SimpleWpf.Esp32/Properties/AssemblyInfo.cs

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Fresh migration of the samples from legacy .nfproj to SDK-style
<Project Sdk="nanoFramework.NET.Sdk"> (netnano1.0, PackageReference), via the NanoMigrate tool.

- 154 projects converted across 111 solutions; packages.config + generated AssemblyInfo removed;
  solutions retargeted with the official Microsoft.VisualStudio.SolutionPersistence library
  (.sln + .slnx).
- Backups/rollback journal cleaned after the successful migration (`nano clean`), so no .nfproj.bak
  or .nanomigrate/ are committed.
- migration-report.md: generated by `nano migrate --report` (154 converted, 0 flagged).
- Build harness (global.json + dev-local NuGet.Config) for the unpublished SDK; remove the local
  feed + pin the published version before merge.
- Post-migration fixes: 1-Wire/OneWire.TestApp adds its used Hardware.Esp32 reference;
  Interop/test-application uses a ProjectReference to the stub lib; stray empty Sender project removed.

Full build sweep: 152/154; the 2 AMQP apps fail on pre-existing package/Wifi rot (sample
maintenance, not a migration defect); Desktop* helpers are .NET Framework, untouched.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants