diff --git a/.github/workflows/publish-nuget.yml b/.github/workflows/publish-nuget.yml index dac7221f..a6bd8bc9 100644 --- a/.github/workflows/publish-nuget.yml +++ b/.github/workflows/publish-nuget.yml @@ -7,6 +7,10 @@ on: jobs: call-publish-workflow: - uses: Lombiq/GitHub-Actions/.github/workflows/publish-nuget.yml@dev + uses: Lombiq/GitHub-Actions/.github/workflows/publish-nuget.yml@issue/OSOE-110 + with: + # Don't generate any symbol package because we're not including the Lombiq.Analyzers.dll in the NuGet package + # itself, either. See Invoke-BeforePack.ps1 for details. + dotnet-pack-include-symbols: "false" secrets: API_KEY: ${{ secrets.DEFAULT_NUGET_PUBLISH_API_KEY }} diff --git a/.github/workflows/test-analysis-failure.yml b/.github/workflows/test-analysis-failure.yml new file mode 100644 index 00000000..e90cbb29 --- /dev/null +++ b/.github/workflows/test-analysis-failure.yml @@ -0,0 +1,35 @@ +name: Test Analysis Failure + +# Runs for PRs opened for any branch, and pushes to the dev branch. +on: + pull_request: + push: + branches: + - dev + +jobs: + call-test-analysis-failure-nuget: + name: Test Analysis Failure - NuGet PackageReference + uses: Lombiq/GitHub-Actions/.github/workflows/test-analysis-failure.yml@issue/OSOE-110 + with: + machine-types: "[\"ubuntu-latest\", \"windows-latest\"]" + build-directory: TestSolutions/Lombiq.Analyzers.PackageReference + timeout-minutes: 30 + build-expected-code-analysis-errors: | + IDE0021: Use expression body for constructors. + IDE0044: Make field readonly. + S2933: Make 'Number' 'readonly'. + S4487: Remove this unread private field 'Number' or refactor the code to use its value. + + call-test-analysis-failure-local: + name: Test Analysis Failure - Local ProjectReference + uses: Lombiq/GitHub-Actions/.github/workflows/test-analysis-failure.yml@issue/OSOE-110 + with: + machine-types: "[\"ubuntu-latest\", \"windows-latest\"]" + build-directory: TestSolutions/Lombiq.Analyzers.ProjectReference + timeout-minutes: 30 + build-expected-code-analysis-errors: | + IDE0021: Use expression body for constructors. + IDE0044: Make field readonly. + S2933: Make 'Number' 'readonly'. + S4487: Remove this unread private field 'Number' or refactor the code to use its value. diff --git a/.github/workflows/verify-submodule-pull-request.yml b/.github/workflows/verify-submodule-pull-request.yml index d6e392ed..d5cfc490 100644 --- a/.github/workflows/verify-submodule-pull-request.yml +++ b/.github/workflows/verify-submodule-pull-request.yml @@ -5,4 +5,4 @@ on: jobs: call-verify-workflow: - uses: Lombiq/GitHub-Actions/.github/workflows/verify-submodule-pull-request.yml@dev + uses: Lombiq/GitHub-Actions/.github/workflows/verify-submodule-pull-request.yml@issue/OSOE-110 diff --git a/.gitignore b/.gitignore index 0d410d77..b2b691d4 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,7 @@ wwwroot/ node_modules/ *.user .pnpm-debug.log +/.editorconfig +/TestSolutions/**/.editorconfig +/TestSolutions/Lombiq.Analyzers.*/**/AnalyzerViolations.cs +/Lombiq.Analyzers/Lombiq.Analyzers.nuspec diff --git a/CommonPackages.props b/CommonPackages.props deleted file mode 100644 index b3d4430f..00000000 --- a/CommonPackages.props +++ /dev/null @@ -1,43 +0,0 @@ - - - - - all - runtime; build; native; contentfiles; analyzers; - - - all - runtime; build; native; contentfiles; analyzers; - - - all - runtime; build; native; contentfiles; analyzers; - - - all - runtime; build; native; contentfiles; analyzers; - - - all - runtime; build; native; contentfiles; analyzers; - - - all - runtime; build; native; contentfiles; analyzers; - - - all - runtime; build; native; contentfiles; analyzers; - - - all - runtime; build; native; contentfiles; analyzers; - - - all - runtime; build; native; contentfiles; analyzers; - - - diff --git a/ConvertTo-Nuspec.ps1 b/ConvertTo-Nuspec.ps1 new file mode 100644 index 00000000..2b61ea57 --- /dev/null +++ b/ConvertTo-Nuspec.ps1 @@ -0,0 +1,24 @@ +param($Version) + +$projectPath = Join-Path $PWD Lombiq.Analyzers +function Read-Xml([string]$File) { [xml](Get-Content (Join-Path $projectPath $File)) } + +$nuspec = Read-Xml Lombiq.Analyzers.nuspec.template +$dependencies = $nuspec.package.metadata.dependencies + +$nuspec.package.metadata.GetElementsByTagName('version')[0].InnerXml = $Version + +foreach($dependency in (Read-Xml CommonPackages.props).Project.ItemGroup.AnalyzerPackage) +{ + $id = $dependency.Include + if (-not $id) { continue } + + $node = $nuspec.CreateElement('dependency') + $node.SetAttribute('id', $id) + $node.SetAttribute('version', $dependency.Version) + + $dependencies.AppendChild($node) +} + +$outputPath = Join-Path $projectPath Lombiq.Analyzers.nuspec +$nuspec.Save($outputPath) diff --git a/Invoke-BeforePack.ps1 b/Invoke-BeforePack.ps1 new file mode 100644 index 00000000..cc38cc43 --- /dev/null +++ b/Invoke-BeforePack.ps1 @@ -0,0 +1,9 @@ +# This script tries to work around NuGet's validation caused by the presence of these files: +# - bin/Release/netstandard2.0/Lombiq.Analyzers.dll +# - obj/Release/netstandard2.0/Lombiq.Analyzers.dll +# The cause is probably that we don't actually do anything in the corresponding csproj, it only exists because we need +# an entry point for `dotnet pack` (unlike the older `nuget pack` tooling, which worked with just the .nuspec alone). + +# Remove all .dll and other build output files from the directory to be packed. +Remove-Item Lombiq.Analyzers/bin -Recurse +Remove-Item Lombiq.Analyzers/obj/Release -Recurse diff --git a/Lombiq.Analyzers.csproj b/Lombiq.Analyzers.csproj deleted file mode 100644 index e6131e40..00000000 --- a/Lombiq.Analyzers.csproj +++ /dev/null @@ -1,33 +0,0 @@ - - - - net6.0 - $(DefaultItemExcludes);.git*; - - - - Lombiq .NET Analyzers - Lombiq Technologies - Copyright © 2020, Lombiq Technologies Ltd. - Lombiq .NET Analyzers: .NET code analyzers and code convention settings for Lombiq (https://lombiq.com) projects, predominantly for Orchard Core (https://orchardcore.net/) apps but also any .NET apps. See the project website for detailed documentation. - NuGetIcon.png - OrchardCore;Lombiq;AspNetCore;CodeAnalysis;DotNetAnalyzers;Analyzer;Analyzers;Diagnostic;Roslyn;Refactoring;AsyncFixer;Meziantou.Analyzer;StyleCop - https://github.com/Lombiq/.NET-Analyzers - https://github.com/Lombiq/.NET-Analyzers - License.md - true - - - - - - - - - - - - - - - diff --git a/Lombiq.Analyzers.sln b/Lombiq.Analyzers.sln new file mode 100644 index 00000000..4ea0a908 --- /dev/null +++ b/Lombiq.Analyzers.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.32112.339 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lombiq.Analyzers", "Lombiq.Analyzers\Lombiq.Analyzers.csproj", "{1435B0AD-AB9A-42BA-B3D9-554FE5274CE8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1435B0AD-AB9A-42BA-B3D9-554FE5274CE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1435B0AD-AB9A-42BA-B3D9-554FE5274CE8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1435B0AD-AB9A-42BA-B3D9-554FE5274CE8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1435B0AD-AB9A-42BA-B3D9-554FE5274CE8}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/.editorconfig b/Lombiq.Analyzers/.editorconfig similarity index 99% rename from .editorconfig rename to Lombiq.Analyzers/.editorconfig index 6996c6f3..1791262b 100644 --- a/.editorconfig +++ b/Lombiq.Analyzers/.editorconfig @@ -1,5 +1,5 @@ -# WARNING: Only edit this file in the Lombiq .NET Analyzers repository's folder. A copy of this file anywhere else will -# be overwritten. +# WARNING: Only edit this file in the Lombiq .NET Analyzers repository's "Lombiq.Analyzers" folder. A copy of this file +# anywhere else will be overwritten. # Common .NET conventions, code formatting and naming convention rules. Check out possible configs here: # https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference diff --git a/Build.props b/Lombiq.Analyzers/Build.props similarity index 72% rename from Build.props rename to Lombiq.Analyzers/Build.props index a388df21..34021ccb 100644 --- a/Build.props +++ b/Lombiq.Analyzers/Build.props @@ -2,8 +2,10 @@ $(MSBuildThisFileDirectory)orchardcore.ruleset true - - false + + false @@ -63,7 +65,22 @@ - - + + + + + + + + diff --git a/Lombiq.Analyzers/CommonPackages.props b/Lombiq.Analyzers/CommonPackages.props new file mode 100644 index 00000000..3ba5fd2f --- /dev/null +++ b/Lombiq.Analyzers/CommonPackages.props @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; + + + + diff --git a/Docs/AddingAnalyzers.md b/Lombiq.Analyzers/Docs/AddingAnalyzers.md similarity index 91% rename from Docs/AddingAnalyzers.md rename to Lombiq.Analyzers/Docs/AddingAnalyzers.md index 778352a1..7b1d2e9c 100644 --- a/Docs/AddingAnalyzers.md +++ b/Lombiq.Analyzers/Docs/AddingAnalyzers.md @@ -49,9 +49,17 @@ For at least Visual Studio and JetBrains Rider you don't need any further setup ## How to add the analyzers to SDK-style projects from NuGet -The recommended approach for SDK-style projects is adding .NET Analyzers as a submodule as explained above due to the increased control you have over configuration. However, if you aren't using Git or prefer NuGet, you can also use the [NuGet package](https://www.nuget.org/packages/Lombiq.Analyzers/) to install it for just one project. Once you add the package to your project, all analyzers will be applied. +The recommended approach for SDK-style projects is adding .NET Analyzers as a submodule as explained above due to the increased control you have over configuration. However, if you aren't using Git, dislike submodules or prefer NuGet, you can also use the [NuGet package](https://www.nuget.org/packages/Lombiq.Analyzers/) to install it for just one project. Once you add the package to your project, all analyzers will be applied. -You can also add the package to all projects in a folder at once from a _Directory.Build.props_ file (much like we do in [_CommonPackages.props_](../CommonPackages.props)). +```csproj + + all + +``` + +The `all` is necessary to prevent the analyzers "leaking" into other projects that may consume yours. + +You can also add the package to all projects inside a folder at once [from a _Directory.Build.props_ file](https://docs.microsoft.com/en-us/visualstudio/msbuild/customize-your-build). ## How to add the analyzers to individual non-SDK-style .NET Framework projects (not solutions) diff --git a/Docs/ConfiguringAnalyzers.md b/Lombiq.Analyzers/Docs/ConfiguringAnalyzers.md similarity index 100% rename from Docs/ConfiguringAnalyzers.md rename to Lombiq.Analyzers/Docs/ConfiguringAnalyzers.md diff --git a/Docs/UsingAnalyzersDuringCommandLineBuilds.md b/Lombiq.Analyzers/Docs/UsingAnalyzersDuringCommandLineBuilds.md similarity index 84% rename from Docs/UsingAnalyzersDuringCommandLineBuilds.md rename to Lombiq.Analyzers/Docs/UsingAnalyzersDuringCommandLineBuilds.md index 38472952..52a7255a 100644 --- a/Docs/UsingAnalyzersDuringCommandLineBuilds.md +++ b/Lombiq.Analyzers/Docs/UsingAnalyzersDuringCommandLineBuilds.md @@ -18,7 +18,7 @@ dotnet build MySolution.sln --no-incremental /p:TreatWarningsAsErrors=true ## .NET code style analysis -If you want code style analysis configured in _.editorconfig_ (i.e. IDE\* rules, this is not applicable to the others) to be checked during build too (it's already checked during editing) then you'll need to run the build with `RunAnalyzersDuringBuild=true`. **Don't** enable `EnforceCodeStyleInBuild` as explained in [the docs](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/overview#code-style-analysis) since that'll always use the analyzers from the .NET SDK, not the explicitly referenced packages, and will cause violations not to show (see [this comment](https://github.com/dotnet/roslyn/issues/50785#issuecomment-768606882)). +If you want code style analysis configured in _.editorconfig_ (i.e. IDE\* rules, this is not applicable to the others) to be checked during build too (it's already checked during editing) then you'll need to run the build with `RunAnalyzersDuringBuild=true`. **Don't** enable `EnforceCodeStyleInBuild` as explained in [the docs](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/overview#code-style-analysis) because that always uses the analyzers from the .NET SDK, not the explicitly referenced packages, and violations won't show up (see [this comment](https://github.com/dotnet/roslyn/issues/50785#issuecomment-768606882)). ```ps dotnet build MySolution.sln --no-incremental /p:RunAnalyzersDuringBuild=true @@ -36,6 +36,8 @@ Or if you only want to see the errors and not the full build output (including e dotnet build MySolution.sln --no-incremental -warnaserror /p:TreatWarningsAsErrors=true /p:RunAnalyzersDuringBuild=true -nologo -consoleLoggerParameters:NoSummary -verbosity:quiet ``` +> ⚠ If you are using the NuGet package, run `dotnet msbuild "-t:Restore;LombiqNetAnalyzers" MySolution.sln` first to ensure the _.editorconfig_ file is deployed. This is especially important for CI usage. For local development, you can simply rebuild the solution. + Note that code style analysis is experimental in the .NET 5 SDK and [may change in later versions](https://github.com/dotnet/roslyn/issues/49044). ## Non-SDK-style .NET Framework projects diff --git a/Docs/UsingAnalyzersDuringDevelopment.md b/Lombiq.Analyzers/Docs/UsingAnalyzersDuringDevelopment.md similarity index 100% rename from Docs/UsingAnalyzersDuringDevelopment.md rename to Lombiq.Analyzers/Docs/UsingAnalyzersDuringDevelopment.md diff --git a/License.md b/Lombiq.Analyzers/License.md similarity index 100% rename from License.md rename to Lombiq.Analyzers/License.md diff --git a/Lombiq.Analyzers/Lombiq.Analyzers.csproj b/Lombiq.Analyzers/Lombiq.Analyzers.csproj new file mode 100644 index 00000000..4bd3bc25 --- /dev/null +++ b/Lombiq.Analyzers/Lombiq.Analyzers.csproj @@ -0,0 +1,26 @@ + + + + netstandard2.0 + $(DefaultItemExcludes);.git*; + + + + + + + + + + + + + + + + + diff --git a/Lombiq.Analyzers/Lombiq.Analyzers.nuspec.template b/Lombiq.Analyzers/Lombiq.Analyzers.nuspec.template new file mode 100644 index 00000000..190367c3 --- /dev/null +++ b/Lombiq.Analyzers/Lombiq.Analyzers.nuspec.template @@ -0,0 +1,20 @@ + + + + Lombiq.Analyzers + $version$ + Lombiq .NET Analyzers + Lombiq Technologies + License.md + https://aka.ms/deprecateLicenseUrl + NuGetIcon.png + https://github.com/Lombiq/.NET-Analyzers + Lombiq .NET Analyzers: .NET code analyzers and code convention settings for Lombiq (https://lombiq.com) projects, predominantly for Orchard Core (https://orchardcore.net/) apps but also any .NET apps. See the project website for detailed documentation. + Copyright © 2020, Lombiq Technologies Ltd. + OrchardCore Lombiq AspNetCore CodeAnalysis DotNetAnalyzers Analyzer Analyzers Diagnostic Roslyn Refactoring AsyncFixer Meziantou.Analyzer StyleCop + + + + + + diff --git a/NetFx.Build.props b/Lombiq.Analyzers/NetFx.Build.props similarity index 100% rename from NetFx.Build.props rename to Lombiq.Analyzers/NetFx.Build.props diff --git a/NuGetIcon.png b/Lombiq.Analyzers/NuGetIcon.png similarity index 100% rename from NuGetIcon.png rename to Lombiq.Analyzers/NuGetIcon.png diff --git a/Readme.md b/Lombiq.Analyzers/Readme.md similarity index 100% rename from Readme.md rename to Lombiq.Analyzers/Readme.md diff --git a/SonarLint.xml b/Lombiq.Analyzers/SonarLint.xml similarity index 100% rename from SonarLint.xml rename to Lombiq.Analyzers/SonarLint.xml diff --git a/VisualStudioExtension.Build.props b/Lombiq.Analyzers/VisualStudioExtension.Build.props similarity index 100% rename from VisualStudioExtension.Build.props rename to Lombiq.Analyzers/VisualStudioExtension.Build.props diff --git a/Lombiq.Analyzers/build/Lombiq.Analyzers.props b/Lombiq.Analyzers/build/Lombiq.Analyzers.props new file mode 100644 index 00000000..49b5725f --- /dev/null +++ b/Lombiq.Analyzers/build/Lombiq.Analyzers.props @@ -0,0 +1,7 @@ + + + true + + + + diff --git a/general.ruleset b/Lombiq.Analyzers/general.ruleset similarity index 100% rename from general.ruleset rename to Lombiq.Analyzers/general.ruleset diff --git a/orchard1.ruleset b/Lombiq.Analyzers/orchard1.ruleset similarity index 100% rename from orchard1.ruleset rename to Lombiq.Analyzers/orchard1.ruleset diff --git a/orchardcore.ruleset b/Lombiq.Analyzers/orchardcore.ruleset similarity index 100% rename from orchardcore.ruleset rename to Lombiq.Analyzers/orchardcore.ruleset diff --git a/stylecop.json b/Lombiq.Analyzers/stylecop.json similarity index 100% rename from stylecop.json rename to Lombiq.Analyzers/stylecop.json diff --git a/visualstudioextension.ruleset b/Lombiq.Analyzers/visualstudioextension.ruleset similarity index 100% rename from visualstudioextension.ruleset rename to Lombiq.Analyzers/visualstudioextension.ruleset diff --git a/TestSolutions/AnalyzerViolations.cs b/TestSolutions/AnalyzerViolations.cs new file mode 100644 index 00000000..60bcd7d8 --- /dev/null +++ b/TestSolutions/AnalyzerViolations.cs @@ -0,0 +1,16 @@ +namespace Lombiq.Analyzers.ProjectReference; + +// This file has intentional analyzer violations. Only edit the one in the TestSolutions directory. Any copy in the +// subdirectories will be copied over during build. Copying is necessary so the source files are in a directory with an +// existing parent .editorconfig file. (Linking will cause them to physically be outside of the .editorconfig's area of +// effect.) Also please commit the updated version everywhere, because if the file is not present before the build +// starts then MSBuild won't include it despite the task. For this purpose the task is only there to +// ensure that the changes propagate and get committed. +public class Class1 +{ + private int Number; + public Class1(int number) + { + Number = number; + } +} diff --git a/TestSolutions/Directory.Build.props b/TestSolutions/Directory.Build.props new file mode 100644 index 00000000..f028845c --- /dev/null +++ b/TestSolutions/Directory.Build.props @@ -0,0 +1,9 @@ + + + + + true + + diff --git a/TestSolutions/Lombiq.Analyzers.PackageReference/IndirectPackageReference/IndirectPackageReference.csproj b/TestSolutions/Lombiq.Analyzers.PackageReference/IndirectPackageReference/IndirectPackageReference.csproj new file mode 100644 index 00000000..9d5d6104 --- /dev/null +++ b/TestSolutions/Lombiq.Analyzers.PackageReference/IndirectPackageReference/IndirectPackageReference.csproj @@ -0,0 +1,32 @@ + + + + net6.0 + + + + + + + all + + + + + + + + + + + + + + + + diff --git a/TestSolutions/Lombiq.Analyzers.PackageReference/Lombiq.Analyzers.PackageReference.csproj b/TestSolutions/Lombiq.Analyzers.PackageReference/Lombiq.Analyzers.PackageReference.csproj new file mode 100644 index 00000000..726d2a1c --- /dev/null +++ b/TestSolutions/Lombiq.Analyzers.PackageReference/Lombiq.Analyzers.PackageReference.csproj @@ -0,0 +1,22 @@ + + + + net6.0 + + + + + all + + + + + + + + + + + + + diff --git a/TestSolutions/Lombiq.Analyzers.PackageReference/Lombiq.Analyzers.PackageReference.sln b/TestSolutions/Lombiq.Analyzers.PackageReference/Lombiq.Analyzers.PackageReference.sln new file mode 100644 index 00000000..7a4c2b2b --- /dev/null +++ b/TestSolutions/Lombiq.Analyzers.PackageReference/Lombiq.Analyzers.PackageReference.sln @@ -0,0 +1,34 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30114.105 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lombiq.Analyzers.PackageReference", "Lombiq.Analyzers.PackageReference.csproj", "{431AE877-59B7-438C-91AE-825AC847B447}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{0533C5D5-F4D0-4231-A810-80E7342F9C33}" + ProjectSection(SolutionItems) = preProject + ..\Directory.Build.props = ..\Directory.Build.props + ..\AnalyzerViolations.cs = ..\AnalyzerViolations.cs + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IndirectPackageReference", "IndirectPackageReference\IndirectPackageReference.csproj", "{B6108F6C-7B57-4475-932A-1124CD7CBF11}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {431AE877-59B7-438C-91AE-825AC847B447}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {431AE877-59B7-438C-91AE-825AC847B447}.Debug|Any CPU.Build.0 = Debug|Any CPU + {431AE877-59B7-438C-91AE-825AC847B447}.Release|Any CPU.ActiveCfg = Release|Any CPU + {431AE877-59B7-438C-91AE-825AC847B447}.Release|Any CPU.Build.0 = Release|Any CPU + {B6108F6C-7B57-4475-932A-1124CD7CBF11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B6108F6C-7B57-4475-932A-1124CD7CBF11}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B6108F6C-7B57-4475-932A-1124CD7CBF11}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B6108F6C-7B57-4475-932A-1124CD7CBF11}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/TestSolutions/Lombiq.Analyzers.ProjectReference/Lombiq.Analyzers.ProjectReference.csproj b/TestSolutions/Lombiq.Analyzers.ProjectReference/Lombiq.Analyzers.ProjectReference.csproj new file mode 100644 index 00000000..19f387d4 --- /dev/null +++ b/TestSolutions/Lombiq.Analyzers.ProjectReference/Lombiq.Analyzers.ProjectReference.csproj @@ -0,0 +1,13 @@ + + + + + + net6.0 + + + + + + + diff --git a/TestSolutions/Lombiq.Analyzers.ProjectReference/Lombiq.Analyzers.ProjectReference.sln b/TestSolutions/Lombiq.Analyzers.ProjectReference/Lombiq.Analyzers.ProjectReference.sln new file mode 100644 index 00000000..80f6336c --- /dev/null +++ b/TestSolutions/Lombiq.Analyzers.ProjectReference/Lombiq.Analyzers.ProjectReference.sln @@ -0,0 +1,33 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30114.105 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lombiq.Analyzers.ProjectReference", "Lombiq.Analyzers.ProjectReference.csproj", "{E43F83B6-F5D0-4FD9-AD3D-2FB071B777A6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lombiq.Analyzers", "..\..\Lombiq.Analyzers\Lombiq.Analyzers.csproj", "{E4090872-11F2-49D1-A746-65E15DC4977E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{CE857933-4E64-44B8-A1CA-3489F88475AB}" + ProjectSection(SolutionItems) = preProject + ..\Directory.Build.props = ..\Directory.Build.props + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E43F83B6-F5D0-4FD9-AD3D-2FB071B777A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E43F83B6-F5D0-4FD9-AD3D-2FB071B777A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E43F83B6-F5D0-4FD9-AD3D-2FB071B777A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E43F83B6-F5D0-4FD9-AD3D-2FB071B777A6}.Release|Any CPU.Build.0 = Release|Any CPU + {E4090872-11F2-49D1-A746-65E15DC4977E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E4090872-11F2-49D1-A746-65E15DC4977E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E4090872-11F2-49D1-A746-65E15DC4977E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E4090872-11F2-49D1-A746-65E15DC4977E}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/build/Lombiq.Analyzers.props b/build/Lombiq.Analyzers.props deleted file mode 100644 index 810897af..00000000 --- a/build/Lombiq.Analyzers.props +++ /dev/null @@ -1,3 +0,0 @@ - - -