Skip to content

Migrate all samples to SDK-style projects#463

Closed
danielmeza wants to merge 6 commits into
nanoframework:mainfrom
danielmeza:move-to-sdk
Closed

Migrate all samples to SDK-style projects#463
danielmeza wants to merge 6 commits into
nanoframework:mainfrom
danielmeza:move-to-sdk

Conversation

@danielmeza

Copy link
Copy Markdown

Description

  • Migrate every sample from the legacy .nfproj project system to SDK-style
    <Project Sdk="nanoFramework.NET.Sdk"> projects targeting netnano1.0, using PackageReference
    instead of packages.config.
  • 153 projects converted across 111 solutions; the solutions are retargeted (project-type GUID to
    the SDK C#/CPS GUID, .nfproj paths to .csproj); packages.config and generated
    AssemblyInfo.cs are removed.
  • The conversion was performed by the dotnet nano migrate tool (NanoMigrate), which derives each
    PackageReference id and version from the project's packages.config, folds .nuspec metadata
    into MSBuild Pack properties, preserves native-stub AssemblyInfo.cs (with
    GenerateAssemblyInfo=false), and keeps shared-project (.projitems) imports.
  • Two small 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).

Motivation and Context

How Has This Been Tested?

  • dotnet nano migrate over the whole repo: 153 projects converted, 0 review flags, 0 errors;
    re-running is a clean no-op (the tool is idempotent and reentrant).
  • Spot-built converted samples across shapes (app with top-level statements, .resx/resources,
    many-package, shared-project, interop, unit-test) with dotnet build against the SDK — all build;
    app output PE magic is NFMRK2.

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, which is not
yet published to nuget.org. The repo currently carries a dev-local global.json (pinning the SDK
version) and a NuGet.Config with a local-sdk source pointing at a sibling SDK build; before
merge
that local source must be removed and the SDK version pinned to the published package.
This PR is best reviewed/merged after nanoframework/nanoFramework.NET.Sdk#2.

Samples that still reference 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). A handful of projects are intentionally out of scope: the Desktop* test
helpers are regular .NET Framework projects (not nanoFramework), and the AMQP samples carry
pre-existing inconsistent legacy package versions that need a coordinated bump.

🤖 Generated with Claude Code

danielmeza and others added 5 commits June 15, 2026 21:37
Phase 1 samples pilot for the SDK-style migration. Converts two Beginner samples from the
legacy .nfproj project system to SDK-style projects and verifies they build from the CLI
against the official nanoFramework.NET.Sdk.

- 1-BlinkLed.csproj and 2-Button.csproj: <Project Sdk="nanoFramework.NET.Sdk">, netnano1.0,
  with PackageReference to nanoFramework.CoreLibrary 2.0.0-preview.52,
  nanoFramework.Runtime.Events 2.0.1, nanoFramework.System.Device.Gpio 2.0.0-preview.18.
- Removed each sample's .nfproj, packages.config, and Properties/AssemblyInfo.cs.
- Beginner.sln: the two converted entries use the SDK-style C# CPS project-type GUID and
  .csproj paths; the other six samples remain legacy .nfproj (coexistence).
- Added a dev-local build harness (global.json pinning the SDK, NuGet.Config with a local
  feed for the unpublished SDK build). Remove the local feed once the SDK ships to nuget.org.

dotnet build produces BlinkLed.pe / Button.pe with PE magic NFMRK2 (v2); the full assembly
graph restores natively as v2.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Validates that SDK-style nanoFramework projects work with NuGet Central Package Management.
Adds samples/Beginner/Directory.Packages.props (ManagePackageVersionsCentrally=true) with the
v2 package versions, and removes the per-project versions from the PackageReference items.

No NU1008: the SDK's auto-injected MetadataProcessor PackageReference is IsImplicitlyDefined,
which CPM exempts, so the nano SDK is CPM-compatible without changes. Both samples build and
emit NFMRK2.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…orm bulk migration

CPM was validated in isolation (test); the bulk converter emits versioned PackageReferences, so
keep the whole repo uniformly versioned. Repo-wide CPM (central props + versionless) is a possible
follow-up.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Convert every sample from the legacy .nfproj project system to SDK-style
<Project Sdk="nanoFramework.NET.Sdk"> (netnano1.0, PackageReference), and retarget the solutions,
using the NanoMigrate tool (nanoFramework.Sdk tools/NanoMigrate).

- 153 projects converted across 111 solutions; packages.config + generated AssemblyInfo removed;
  .sln entries retargeted (project-type GUID -> SDK CPS GUID, .nfproj -> .csproj).
- PackageReference versions taken from packages.config; native-stub libraries keep their
  AssemblyInfo.cs (AssemblyNativeVersion) with GenerateAssemblyInfo=false; resx and shared-project
  samples handled (no duplicate items, .projitems imports preserved).
- Spot-built across shapes (app, resx, many-package) — all build; output PE is NFMRK2 (a few
  emit NFMRK1 where the sample still references a v1 CoreLibrary).

A handful of projects are intentionally not nano SDK-style (desktop .NET Framework test helpers)
and a few have pre-existing issues (package-version conflicts, a missing dependency, a bin\
HintPath sibling reference) noted during migration.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 1-Wire/OneWire.TestApp: add the missing nanoFramework.Hardware.Esp32 PackageReference
  (Program.cs uses it; it was absent from the legacy packages.config, so the legacy build would
  have failed too).
- Interop/test-application: reference the interop stub library as a ProjectReference (the legacy
  .nfproj used a bin\ HintPath, which the converter intentionally does not turn into a project
  reference).

Both build SDK-style. (Base64Test's build gap is fixed separately by the SDK now defining
NANOFRAMEWORK_1_0.)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@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: cbe89a82-60a6-4d7e-96a7-1439c8b584db

📥 Commits

Reviewing files that changed from the base of the PR and between 93e47c5 and 841898a.

📒 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
  • 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
  • samples/Graphics/SimpleWpf/SimpleWpf.Esp32/SimpleWpf.Esp32.csproj

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.

Sender.csproj is an orphaned, empty project (no packages, no own source) converted from a stray
Sender.nfproj that was never referenced by Amqp.Samples.sln. It collided with the real
Azure-ServiceBus-Sender.csproj on the default source glob. The two real AMQP apps still need a
coordinated package modernization (pre-existing version rot + Program.cs uses System.Device.Wifi /
NetworkHelper while the package refs are the deprecated Windows.Devices.Wifi / missing the helper) —
sample maintenance, not a migration defect.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@danielmeza

Copy link
Copy Markdown
Author

Closing in favor of a fresh migration: re-running the full sample migration with the improved NanoMigrate tooling (SolutionPersistence-based .sln/.slnx retargeting, build-verify/rollback/clean, vertical-slice Core). A new PR will replace this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants