From ab4a7676b9d396aae10f116982013eb2ae3ea617 Mon Sep 17 00:00:00 2001 From: XperiAndri Date: Tue, 27 Oct 2026 02:21:14 +0100 Subject: [PATCH 1/3] 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/3] 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/3] 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 @@ - + + +