From ab4a7676b9d396aae10f116982013eb2ae3ea617 Mon Sep 17 00:00:00 2001 From: XperiAndri Date: Tue, 27 Oct 2026 02:21:14 +0100 Subject: [PATCH 1/5] Switch the solution to the `.slnx` format `dotnet sln migrate` produced `StringResourceVisualizer.slnx` from `StringResourceVisualizer.sln`, and the old file is removed. The projects and the solution items are the same. The project ids are the ones of the old solution, which is what Visual Studio writes into the file itself. The `.slnx` format is XML, much shorter than the `.sln`, and designed to reduce merge conflicts (https://devblogs.microsoft.com/visualstudio/new-simpler-solution-file-format/). Building it needs the .NET SDK 9.0.200 or later, or MSBuild from Visual Studio or Build Tools 17.13 or later. Co-Authored-By: Claude Sonnet 5.5 --- StringResourceVisualizer.sln | 38 ----------------------------------- StringResourceVisualizer.slnx | 9 +++++++++ 2 files changed, 9 insertions(+), 38 deletions(-) delete mode 100644 StringResourceVisualizer.sln create mode 100644 StringResourceVisualizer.slnx diff --git a/StringResourceVisualizer.sln b/StringResourceVisualizer.sln deleted file mode 100644 index 90c2db1..0000000 --- a/StringResourceVisualizer.sln +++ /dev/null @@ -1,38 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.1.32104.313 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StringResourceVisualizer", "src\StringResourceVisualizer.csproj", "{E71A6E00-D6F7-4401-9515-1DD72701EC57}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F0206BFC-99B1-481B-8248-F4C4995858FC}" - ProjectSection(SolutionItems) = preProject - .editorconfig = .editorconfig - CHANGELOG.md = CHANGELOG.md - README.md = README.md - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StringResourceVisualizer.Tests", "src\StringResourceVisualizer.Tests\StringResourceVisualizer.Tests.csproj", "{B36B6804-3DE4-4C5B-9727-25F053CBA7AC}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E71A6E00-D6F7-4401-9515-1DD72701EC57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E71A6E00-D6F7-4401-9515-1DD72701EC57}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E71A6E00-D6F7-4401-9515-1DD72701EC57}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E71A6E00-D6F7-4401-9515-1DD72701EC57}.Release|Any CPU.Build.0 = Release|Any CPU - {B36B6804-3DE4-4C5B-9727-25F053CBA7AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B36B6804-3DE4-4C5B-9727-25F053CBA7AC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B36B6804-3DE4-4C5B-9727-25F053CBA7AC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B36B6804-3DE4-4C5B-9727-25F053CBA7AC}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {CD6B32D1-9303-4C28-8469-72A05632ABE0} - EndGlobalSection -EndGlobal diff --git a/StringResourceVisualizer.slnx b/StringResourceVisualizer.slnx new file mode 100644 index 0000000..d24ac8f --- /dev/null +++ b/StringResourceVisualizer.slnx @@ -0,0 +1,9 @@ + + + + + + + + + From ae5f7409263597be0b0a7bdde6120a61529daf85 Mon Sep 17 00:00:00 2001 From: XperiAndri Date: Tue, 27 Oct 2026 02:33:45 +0100 Subject: [PATCH 2/5] Convert the projects to the SDK style Both projects use `Microsoft.NET.Sdk` with `net481` now, and `VSSDKBuildToolsAutoSetup` with `Microsoft.VSSDK.BuildTools` 18.5 builds the VSIX. The source files are included by globbing; the extension project excludes the folder of the test project, which lies inside its own folder. `Properties\AssemblyInfo.cs` stays, because the version comes from the `Vsix` constants, and the output stays in `bin\Debug\` and `bin\Release\`. The signing target is called `SignAndCopyVsix` and runs after `Build`. As `AfterBuild` it would be replaced by the SDK targets and never run. The packages and their versions are the same, apart from the added `Microsoft.VSSDK.BuildTools`. Co-Authored-By: Claude Sonnet 5.5 --- .../StringResourceVisualizer.Tests.csproj | 123 +++-------- src/StringResourceVisualizer.csproj | 201 +++++------------- src/signvsix.targets | 3 +- 3 files changed, 78 insertions(+), 249 deletions(-) diff --git a/src/StringResourceVisualizer.Tests/StringResourceVisualizer.Tests.csproj b/src/StringResourceVisualizer.Tests/StringResourceVisualizer.Tests.csproj index 82e550c..5ef3fac 100644 --- a/src/StringResourceVisualizer.Tests/StringResourceVisualizer.Tests.csproj +++ b/src/StringResourceVisualizer.Tests/StringResourceVisualizer.Tests.csproj @@ -1,105 +1,32 @@ - - - + + - Debug - AnyCPU - {B36B6804-3DE4-4C5B-9727-25F053CBA7AC} - Library - Properties - StringResourceVisualizer.Tests - StringResourceVisualizer.Tests - v4.8.1 - 512 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 15.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages - False - UnitTest - - - + net481 + + false + + false - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - + - - 2.5.192 - - - 4.11.0 - - - 4.11.0 - - - 6.1.0 - - - 4.7.36 - - - 4.11.0 - - - 3.6.3 - - - 3.6.3 - - - 3.6.3 - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - 2.20.17 - - - 8.0.0 - - - 9.0.0 - - - 9.0.0 - - - 1.7.0 - runtime; build; native; contentfiles; analyzers; buildtransitive - all - + + + + + + + + + + + + + + + - - {e71a6e00-d6f7-4401-9515-1dd72701ec57} - StringResourceVisualizer - + - - + \ No newline at end of file diff --git a/src/StringResourceVisualizer.csproj b/src/StringResourceVisualizer.csproj index 2063845..a3b0b8d 100644 --- a/src/StringResourceVisualizer.csproj +++ b/src/StringResourceVisualizer.csproj @@ -1,182 +1,83 @@ - - + + - 15.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - true - - - - true - - - - - - - - Debug - AnyCPU - 2.0 - {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - {E71A6E00-D6F7-4401-9515-1DD72701EC57} - Library - Properties - StringResourceVisualizer - StringResourceVisualizer - v4.8.1 + net481 + StringResourceVisualizer.ruleset + + $(DefaultItemExcludes);StringResourceVisualizer.Tests\** + + + false + + false + + false + + + true true - true + true true true - true - false - Program - $(DevEnvDir)devenv.exe - /rootsuffix Exp - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - StringResourceVisualizer.ruleset - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - StringResourceVisualizer.ruleset + + + + + - - - - - - - - - + Component - - - - - + True True source.extension.vsixmanifest - - - - - - - - - Resources\LICENSE - true - - - .editorconfig - - - - + Designer VsixManifestGenerator source.extension.cs - + + - + + PreserveNewest true - - - 2.5.192 - - - 2.22.0 - - - 4.11.0 - - - 4.11.0 - - - 6.1.0 - - - 4.7.36 - - - 4.11.0 - - - 17.10.40171 - - - 2.20.17 - - - 8.0.0 - - - 4.3.0 - - - 9.0.0 - - - 4.3.0 - - - 9.0.0 - - - 1.7.0 - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - + - - - + + + + + + + + + + + + + + + + + + + + - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - + \ No newline at end of file diff --git a/src/signvsix.targets b/src/signvsix.targets index e34fba6..d341271 100644 --- a/src/signvsix.targets +++ b/src/signvsix.targets @@ -1,6 +1,7 @@ - + + From f4ae3679c7bc5775a054d423fa76b4b0e0b8a267 Mon Sep 17 00:00:00 2001 From: XperiAndri Date: Tue, 27 Oct 2026 02:33:46 +0100 Subject: [PATCH 3/5] Mark the extension project as deployable in the solution Visual Studio 2026 18.5 and later deploys an SDK-style VSIX project to the Experimental instance on F5 only when the solution has a `` element for it. Co-Authored-By: Claude Sonnet 5.5 --- StringResourceVisualizer.slnx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/StringResourceVisualizer.slnx b/StringResourceVisualizer.slnx index d24ac8f..93d0117 100644 --- a/StringResourceVisualizer.slnx +++ b/StringResourceVisualizer.slnx @@ -4,6 +4,8 @@ - + + + From 209ff1237e79a344394490e4c21b5e00df4cc8ef Mon Sep 17 00:00:00 2001 From: XperiAndri Date: Tue, 27 Oct 2026 02:39:55 +0100 Subject: [PATCH 4/5] Move the package versions to central package management `Directory.Packages.props` holds the version of each of the 19 packages, and the two projects name the packages only. The versions are the ones the projects had, so the resolved packages (154 for the extension, 162 for the tests) are the same as before. Co-Authored-By: Claude Sonnet 5.5 --- Directory.Packages.props | 36 +++++++++++++++++++ StringResourceVisualizer.slnx | 1 + .../StringResourceVisualizer.Tests.csproj | 28 +++++++-------- src/StringResourceVisualizer.csproj | 32 ++++++++--------- 4 files changed, 67 insertions(+), 30 deletions(-) create mode 100644 Directory.Packages.props diff --git a/Directory.Packages.props b/Directory.Packages.props new file mode 100644 index 0000000..8b81ec6 --- /dev/null +++ b/Directory.Packages.props @@ -0,0 +1,36 @@ + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/StringResourceVisualizer.slnx b/StringResourceVisualizer.slnx index 93d0117..6a8bd72 100644 --- a/StringResourceVisualizer.slnx +++ b/StringResourceVisualizer.slnx @@ -2,6 +2,7 @@ + diff --git a/src/StringResourceVisualizer.Tests/StringResourceVisualizer.Tests.csproj b/src/StringResourceVisualizer.Tests/StringResourceVisualizer.Tests.csproj index 5ef3fac..0f3f16d 100644 --- a/src/StringResourceVisualizer.Tests/StringResourceVisualizer.Tests.csproj +++ b/src/StringResourceVisualizer.Tests/StringResourceVisualizer.Tests.csproj @@ -9,20 +9,20 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/src/StringResourceVisualizer.csproj b/src/StringResourceVisualizer.csproj index a3b0b8d..bae55a7 100644 --- a/src/StringResourceVisualizer.csproj +++ b/src/StringResourceVisualizer.csproj @@ -60,22 +60,22 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + From bb01c7929f78690c982882927e53848ed7ed7887 Mon Sep 17 00:00:00 2001 From: XperiAndri Date: Tue, 27 Oct 2026 02:41:16 +0100 Subject: [PATCH 5/5] Set the C# language version to 14 `Directory.Build.props` sets `LangVersion` to 14.0 for both projects; it was 12.0. A development machine needs the .NET SDK 10 or Visual Studio 2026 for it. The code compiles to the same types and methods as with 12.0, with the same warnings. Co-Authored-By: Claude Sonnet 5.5 --- Directory.Build.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.props b/Directory.Build.props index d374d47..6aba77f 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,6 +1,6 @@  - 12.0 + 14.0