Consolidate net48 into InfoBoxCore; delete legacy InfoBox.csproj#90
Open
JohannBlais wants to merge 1 commit into
Open
Consolidate net48 into InfoBoxCore; delete legacy InfoBox.csproj#90JohannBlais wants to merge 1 commit into
JohannBlais wants to merge 1 commit into
Conversation
The library was built from two projects: the legacy non-SDK InfoBox.csproj (net48) and the SDK-style InfoBoxCore.csproj (net8/9/10), both compiling the same shared source under InfoBox/. This merges them into one. InfoBoxCore.csproj now multi-targets net48;net8.0-windows;net9.0-windows; net10.0-windows: - The net48 target sets GenerateResourceUsePreserializedResources=true and references System.Resources.Extensions so the embedded icon resources build under the modern SDK. This is what makes `dotnet build InfoBox.sln` work for the whole solution - previously it failed on the legacy project (MSB3823). - SignAssembly + key.snk added, so ALL target frameworks are now strong-name signed with the same key (token 6f5edd306b0cc770). Previously only net48 was signed and the modern DLLs shipped unsigned - now consistent. InfoBox.csproj is deleted. The InfoBox/ folder keeps the source, resources, key, and nuspec; InfoBoxCore compiles them. Knock-on changes: - InfoBox.Designer (old-format net48) repointed from InfoBox.csproj to InfoBoxCore.csproj, consuming its net48 output via <SetTargetFramework>TargetFramework=net48</SetTargetFramework>. Its stale CodeAnalysisRuleSet=AllRules.ruleset references (unresolvable under dotnet, MSB3884) are removed - analysis is governed by EnableNETAnalyzers + .editorconfig. - InfoBox.nuspec: the net48 lib files now come from ..\InfoBoxCore\bin\Release\net48\ instead of ..\InfoBox\bin\Release\. All four TFMs now ship dll + pdb + 7 localization satellites. - InfoBox.sln: InfoBox project entry removed; the dead AnkhSVN SubversionScc section dropped. - CLAUDE.md: project-structure and build sections updated. Verified locally: VS MSBuild full solution, `dotnet build InfoBox.sln` (previously failing), all 4 TFMs produce signed InfoBox.dll + satellites, 96 tests pass (InfoBoxCore.Tests 88, Designer.Tests 8). NOTE for the Azure DevOps pipeline: confirm the pack step works post-merge. The .sln build is covered (net48 now comes from InfoBoxCore), and the nuspec paths are updated, but the pipeline's pack step lives in the portal YAML and should be checked - especially if it referenced InfoBox.csproj directly. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Owner
Author
|
Azure DevOps build #292 fully green — every task succeeded: NuGet restore, Build solution, Run unit tests, Run Code Analysis, SonarCloud. Useful finding from the task list: the CI build pipeline has no pack step (restore → build → test → code-analysis → Sonar). So NuGet packing happens in a separate release pipeline, not in CI — the CI build is therefore unaffected by the nuspec change and is confirmed working with the consolidated structure (including The note about verifying the pack/release step still applies, but it's out of the CI build path. |
This was referenced May 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Merges the two library projects into one. The legacy non-SDK InfoBox.csproj (net48) and the SDK-style InfoBoxCore.csproj (net8/9/10) both compiled the same shared source under
InfoBox/. Now there's a single multi-targeted project.InfoBoxCore.csproj→ multi-targetnet48;net8.0-windows;net9.0-windows;net10.0-windowsGenerateResourceUsePreserializedResources=true+ referencesSystem.Resources.Extensionsso the embedded icon resources build under the modern SDK. This is what makesdotnet build InfoBox.slnwork for the whole solution — it previously failed on the legacy project withMSB3823.SignAssembly+key.snkadded, so all four TFMs are now strong-name signed with the same key (token6f5edd306b0cc770). Previously only net48 was signed and the modern DLLs shipped unsigned — now consistent (per the decision to uniformise).InfoBox.csprojdeletedThe
InfoBox/folder keeps the source,.resx, icon resources,key.snk, andInfoBox.nuspec; InfoBoxCore compiles them via the existing<Compile Include="..\InfoBox\**\*.cs" />.Knock-on changes
InfoBox.csproj→InfoBoxCore.csproj, consuming its net48 output via<SetTargetFramework>TargetFramework=net48</SetTargetFramework>. Its staleCodeAnalysisRuleSet=AllRules.rulesetreferences (unresolvable underdotnet,MSB3884) are removed — analysis is governed byEnableNETAnalyzers+.editorconfig...\InfoBoxCore\bin\Release\net48\. All four TFMs shipdll+pdb+ 7 localization satellites.SubversionSccsection dropped.Verified locally
-t:Rebuild)dotnet build InfoBox.sln(previously failed)InfoBox.dll+pdb+ 7 satellites6f5edd306b0cc770dotnet test— InfoBoxCore.Tests / Designer.TestsThe solution build is covered (net48 now comes from InfoBoxCore) and the nuspec paths are updated. But the pipeline's pack step lives in the Azure DevOps portal YAML, not in the repo, so I couldn't verify it. Please confirm the pack step still works — especially if it referenced
InfoBox.csprojdirectly or rannuget packexpectingInfoBox/bin/Release/. The nuspec now expects the net48 binaries atInfoBoxCore/bin/Release/net48/.Also note
nuget.exeis no longer restored as a side effect of the build (the oldNuget.CommandLinePackageReference was on InfoBox.csproj). If the pipeline relied on that, it needs its own nuget tool step.🤖 Generated with Claude Code