Geekeey.Arcade.NET.Sdk (0.1.0)
Installation
dotnet nuget add source --name geekeey --username your_username --password your_token dotnet add package --source geekeey --version 0.1.0 Geekeey.Arcade.NET.SdkAbout this package
MSBuild SDK for .NET projects with standardized build, analyzer, and editor configuration defaults.
Geekeey.Arcade.NET.Sdk
Opinionated MSBuild SDK for .NET projects with standardized build, analyzer, and editor configuration defaults.
Getting started
<Project Sdk="Geekeey.Arcade.NET.Sdk/1.0.0">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
</PropertyGroup>
</Project>
What it provides
- Sensible language defaults:
ImplicitUsingsandNullableenabled, extra global usings forSystem.Diagnostics.CodeAnalysis,System.Globalization, andSystem.Text. - Code quality defaults:
AnalysisLevel=latest,AnalysisMode=Recommended,EnforceCodeStyleInBuild, nullable warnings as errors, and all warnings as errors on CI (ContinuousIntegrationBuild). - Opinionated
.editorconfigsettings, applied viaEditorConfigFiles(including file-based programs whenFileBasedProgram=true). - Banned API analysis with
Microsoft.CodeAnalysis.BannedApiAnalyzers(with a built-inBannedSymbols.txt), public API analysis withMicrosoft.CodeAnalysis.PublicApiAnalyzers, and RESX source generation withMicrosoft.CodeAnalysis.ResxSourceGenerator. System.Text.Jsondefaults that honor nullable annotations andrequiredconstructor parameters. Opt out withEnableDefaultJsonSerializationOptions=false.- NuGet packaging metadata defaults:
Authors,Copyright,PublishRepositoryUrl, symbol packages (snupkg), and automatic packaging of aPACKAGE.mdreadme,THIRD-PARTY-NOTICESfile, and a detected license file.
Opt-outs
| Property | Effect |
|---|---|
EnableDefaultJsonSerializationOptions=false |
Skips the System.Text.Json nullable annotation defaults. |
IncludeDefaultBannedSymbols=false |
Skips the built-in BannedSymbols.txt. |
BannedNewtonsoftJsonSymbols=false |
Skips the built-in BannedSymbols.NewtonsoftJson.txt. |
SearchReadmeFileAbove=true |
Also searches parent directories for a PACKAGE.md to pack. |
See the repository for the full configuration.