Conversation
- CS_SDK.props: add NET100 TargetFramework (net10.0-windows), DCoreLibSubFolder (net10.0), REVITAPI net8.0 fallback (RevitAPI 25.x ships net8.0 only), updated output path format to bin\Platform\Config\Revit, added NoWarn for CLS compliance, fixed last REVITAPI fallback to Revit 2025. Keeps NET70/NET80 platforms intact (additive change). - packages.aget: bump DynamoVisualProgramming packages to 3.3.2.11866 (net10.0-compatible build). Remove System.Resources.Extensions (not needed with net10 bcl). - DynamoRevit.All.sln: add Debug|NET100 and Release|NET100 platform configurations for all projects (additive alongside NET80). - restorepackages.bat: update aget -framework from NET80 to NET100.
28e81f1 to
7765583
Compare
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Migrates the DynamoRevit solution/build configuration toward .NET 10 for Revit 2025.5, including resource/icon handling changes and updated build tooling/configuration.
Changes:
- Updated solution/configuration to use a NET100 platform and added
global.jsonSDK pinning. - Adjusted icon/resource generation for .NET 10 compatibility by removing
System.Resources.Extensionsusage andSystem.Drawingreference wiring in resource generation. - Updated NuGet package reference versions and build version stamping.
Reviewed changes
Copilot reviewed 6 out of 895 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| src/DynamoRevitIcons/DynamoRevitIcons.csproj | Removes System.Resources.Extensions reference and updates resource generation/AL metadata for 2025. |
| src/DynamoRevit.All.sln | Switches solution configurations from NET80 to NET100 and adds global.json as a solution item. |
| src/Config/packages.aget | Updates DynamoVisualProgramming package versions and removes System.Resources.Extensions. |
| src/Config/CS_SDK.props | Collapses platform to NET100, sets net10 TFM, adjusts output paths and warning suppressions. |
| src/AssemblySharedInfoGenerator/AssemblySharedInfo.tt | Increments the build number used for generated assembly versions. |
| global.json | Pins the .NET SDK version and roll-forward behavior. |
Comments suppressed due to low confidence (1)
src/DynamoRevitIcons/DynamoRevitIcons.csproj:28
- The PR description states that
GetReferenceAssemblyPathsfor ".NETFramework, Version=v4.8" was removed from this project, but it’s still present here. If the intent is to eliminate .NET Framework-specific build steps for .NET 10 compatibility, this target should be updated accordingly (or the PR description should be corrected to reflect what remains).
<Target Name="BeforeBuildMigrated" BeforeTargets="PreBuildEvent">
<GetReferenceAssemblyPaths TargetFrameworkMoniker=".NETFramework, Version=v4.8">
<Output TaskParameter="FullFrameworkReferenceAssemblyPaths" PropertyName="FrameworkAssembliesPath" />
</GetReferenceAssemblyPaths>
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| @@ -0,0 +1,6 @@ | |||
| { | |||
| "sdk": { | |||
| "version": "10.0.100", | |||
There was a problem hiding this comment.
PR description says "Added global.json with SDK 10.0.0", but the actual pinned SDK is "10.0.100". Please align the PR description (or the file) so the expected toolchain is unambiguous.
| <TargetFramework Condition="'$(Platform)' == 'NET100'">net10.0-windows</TargetFramework> | ||
| <DCoreLibSubFolder>net10.0</DCoreLibSubFolder> |
There was a problem hiding this comment.
The PR notes say DCoreLibSubFolder should remain net8.0 for NET100 until the DynamoVisualProgramming packages are published for .NET 10, but the props file now unconditionally sets it to net10.0. This mismatch is likely to break local builds that rely on lib\Revit {version}\{subfolder}. Consider setting DCoreLibSubFolder to net8.0 for NET100 (temporarily), or making it conditional/overridable via the imported version props so the build can continue using net8 assets while targeting net10.
| <DCoreLibSubFolder Condition="'$(Platform)' == 'NET80'">net8.0</DCoreLibSubFolder> | ||
| <DCoreLibSubFolder Condition="'$(Platform)' == 'NET70'">net6.0</DCoreLibSubFolder> | ||
| <DCoreLibSubFolder Condition="'$(Platform)' == 'NET60'">net6.0</DCoreLibSubFolder> | ||
| <REVITAPI Condition=" !Exists('$(REVITAPI)') ">$(SolutionDir)..\lib\Revit $(RevitVersionNumber)\$(DCoreLibSubFolder)</REVITAPI> |
There was a problem hiding this comment.
The PR notes say DCoreLibSubFolder should remain net8.0 for NET100 until the DynamoVisualProgramming packages are published for .NET 10, but the props file now unconditionally sets it to net10.0. This mismatch is likely to break local builds that rely on lib\Revit {version}\{subfolder}. Consider setting DCoreLibSubFolder to net8.0 for NET100 (temporarily), or making it conditional/overridable via the imported version props so the build can continue using net8 assets while targeting net10.
| "DynamoVisualProgramming.Core": "3.3.2.11986", | ||
| "DynamoVisualProgramming.DynamoCoreNodes": "3.3.2.11986", | ||
| "DynamoVisualProgramming.DynamoServices": "3.3.2.11986", | ||
| "DynamoVisualProgramming.Tests": "3.3.2.11986", | ||
| "DynamoVisualProgramming.WpfUILibrary": "3.3.2.11986", | ||
| "DynamoVisualProgramming.ZeroTouchLibrary": "3.3.2.11986", | ||
| "DynamoVisualProgramming.DynamoSamples": "3.3.2.11986", |
There was a problem hiding this comment.
The PR notes explicitly say the DynamoVisualProgramming.* packages “are not updated”, but this change bumps them from 3.3.1.7726 to 3.3.2.11986. Please update the Notes section to reflect the actual change, or revert these package bumps if the intent is truly to keep them unchanged for now.
| <TestOutputPath Condition=" '$(TestOutputPath)' == '' ">$(SolutionDir)..\bin\$(Platform)\$(Configuration)\Revit</TestOutputPath> | ||
|
|
||
| <NoWarn>MSB3539</NoWarn> | ||
| <NoWarn>MSB3539;CS3001;CS3002;CS3003;CS3009;CS3016;CS3027</NoWarn> |
There was a problem hiding this comment.
This adds broad suppression of multiple CS30xx warnings (typically CLS compliance-related). If these are intentional, consider documenting why (e.g., with an XML comment near the property), or scoping the suppression to the specific projects that generate the warnings (instead of the shared SDK props) to avoid hiding new warnings introduced later.
| <NoWarn>MSB3539;CS3001;CS3002;CS3003;CS3009;CS3016;CS3027</NoWarn> | |
| <!-- Keep shared warning suppression narrowly scoped; add any CLS-related CS30xx suppressions in the specific project file that requires them. --> | |
| <NoWarn>MSB3539</NoWarn> |
| <REVITAPI Condition=" !Exists('$(REVITAPI)') ">C:\Program Files\Autodesk\Revit Architecture $(RevitVersionNumber)</REVITAPI> | ||
| <REVITAPI Condition=" !Exists('$(REVITAPI)') ">C:\Program Files\Autodesk\Revit $(RevitVersionNumber)</REVITAPI> | ||
| <REVITAPI Condition=" !Exists('$(REVITAPI)') ">C:\Program Files\Autodesk\Revit Preview Release</REVITAPI> | ||
| <REVITAPI Condition=" !Exists('$(REVITAPI)') ">C:\Program Files\Autodesk\Revit 2025</REVITAPI> |
There was a problem hiding this comment.
The final fallback hard-codes "Revit 2025", which is redundant when RevitVersionNumber is 2025 (it duplicates line 23) and inconsistent when RevitVersionNumber changes (it won’t track the selected version). Consider removing this hard-coded path, or parameterizing it in a way that matches the earlier fallbacks.
| <REVITAPI Condition=" !Exists('$(REVITAPI)') ">C:\Program Files\Autodesk\Revit 2025</REVITAPI> |
Summary
Migrates DynamoRevit to .NET 10 targeting Revit 2025.5.
Commits
REVIT-249329: Extract icons from .resx for .NET 10 compatibility
System.Drawing.Bitmapicons from.resxfiles into separate.pngfiles.resxfiles to useResXFileRefpointing to the extracted PNGsDynamoRevitIcons.csproj: removedSystem.Resources.ExtensionsNuGet package, removedGetReferenceAssemblyPathsfor.NETFramework, Version=v4.8, removedReferences="...System.Drawing.dll"fromGenerateResourcetasksREVIT-249324: Update versioning, config, solution & projects for .NET 10
global.jsonwith SDK10.0.0(rollForward: minor).versionto0.5.47, updatedCHANGELOG.mdsrc/Config/packages_versions.propswith pinned package versions andDCoreLibSubFolder/GregRevitAuthLibSubFolderpropertiesCS_SDK.props: addedNET100toPlatforms, addednet10.0-windowsTargetFramework condition, importedpackages_versions.propspackages.aget: removedSystem.Resources.Extensionsuser_local.props: addednet10.0REVITAPI fallback pathNET100solution configurations toDynamoRevit.All.slnfor all projectsDynamoRevit.csproj: addedEnableDynamicLoading, updated Greg/GregRevitAuth hint paths to use$(GregRevitAuthLibSubFolder), addedCopy dlltarget using package path propertiesREVIT-249325: Update CI/pipelines for NET10
src/restorepackages.bat: changed-framework NET80→-framework NET100Notes
DynamoVisualProgramming.*NuGet packages are not updated — they are not yet released for .NET 10.DCoreLibSubFolderremainsnet8.0for NET100 builds until packages are published.