ANcpLua.NET.Sdk
1.0.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
<Sdk Name="ANcpLua.NET.Sdk" Version="1.0.0" />
For projects that support Sdk, copy this XML node into the project file to reference the package.
#:sdk ANcpLua.NET.Sdk@1.0.0
#:sdk directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
ANcpLua.NET.Sdk
MSBuild SDK with opinionated defaults for .NET projects.
Features
- Code Quality: BannedApiAnalyzers with predefined rules (no DateTime.Now, no Monitor.*, etc.)
- Test Support: xunit.v3 + Microsoft Testing Platform (MTP) auto-configuration
- CI Detection: Auto-enables strict mode on CI (GitHub Actions, Azure DevOps, GitLab)
- CLAUDE.md Generation: Auto-generates project documentation from MSBuild properties
- Shared Throw Helpers: Injected guard clause methods
Usage
Replace your SDK reference:
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="ANcpLua.NET.Sdk/1.0.0">
Or use alongside Microsoft.NET.Sdk:
<Project Sdk="Microsoft.NET.Sdk">
<Sdk Name="ANcpLua.NET.Sdk" Version="1.0.0" />
</Project>
CLAUDE.md Generation
Add properties to your .csproj to auto-generate CLAUDE.md:
<PropertyGroup>
<ClaudePurpose>Backend service: API endpoints and data processing</ClaudePurpose>
<ClaudeLayer>backend</ClaudeLayer>
<ClaudeWorkflow>explore-plan-code-commit</ClaudeWorkflow>
</PropertyGroup>
<ItemGroup>
<ClaudeCriticalFile Include="Storage/Database.cs" Reason="Schema changes break data" />
<ClaudeAntiPattern Include="DateTime.Now" UseInstead="TimeProvider" Severity="error" />
<ClaudeRequiredPattern Include="Lock" Description=".NET 9+ Lock class" />
</ItemGroup>
Configuration
| Property | Default | Description |
|---|---|---|
InjectSharedThrow |
true |
Inject Throw.cs guard clauses |
InjectClaudeBrain |
true |
Generate CLAUDE.md on build |
EnableCodeCoverage |
true (CI only) |
Enable code coverage collection |
EnableDefaultTestSettings |
true |
Auto-configure test runner |
Banned APIs
The SDK enforces these rules via RS0030:
DateTime.Now/UtcNow/Today→ UseTimeProviderMonitor.Enter/Exit→ UseLock.EnterScope()Task.Delay→ UseTimeProvider.Delay()Newtonsoft.Json→ UseSystem.Text.Json
There are no supported framework assets in this package.
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.7.5 | 0 | 1/29/2026 |
| 1.7.4 | 0 | 1/29/2026 |
| 1.7.3 | 43 | 1/28/2026 |
| 1.7.2 | 80 | 1/28/2026 |
| 1.7.1 | 34 | 1/28/2026 |
| 1.7.0 | 36 | 1/28/2026 |
| 1.6.31 | 85 | 1/27/2026 |
| 1.6.30 | 61 | 1/27/2026 |
| 1.6.29 | 244 | 1/23/2026 |
| 1.6.28 | 82 | 1/23/2026 |
| 1.6.27 | 87 | 1/23/2026 |
| 1.6.26 | 137 | 1/22/2026 |
| 1.6.25 | 85 | 1/22/2026 |
| 1.6.23 | 88 | 1/21/2026 |
| 1.6.22 | 86 | 1/21/2026 |
| 1.6.21 | 257 | 1/21/2026 |
| 1.6.20 | 83 | 1/21/2026 |
| 1.6.19 | 115 | 1/21/2026 |
| 1.6.18 | 79 | 1/21/2026 |
| 1.6.17 | 86 | 1/21/2026 |
| 1.6.16 | 81 | 1/20/2026 |
| 1.6.15 | 232 | 1/20/2026 |
| 1.6.14 | 91 | 1/20/2026 |
| 1.6.13 | 94 | 1/18/2026 |
| 1.6.12 | 124 | 1/18/2026 |
| 1.6.11 | 98 | 1/17/2026 |
| 1.6.10 | 124 | 1/16/2026 |
| 1.6.9 | 118 | 1/15/2026 |
| 1.6.8 | 99 | 1/15/2026 |
| 1.6.7 | 115 | 1/15/2026 |
| 1.6.6 | 103 | 1/14/2026 |
| 1.6.5 | 98 | 1/14/2026 |
| 1.6.4 | 98 | 1/14/2026 |
| 1.6.3 | 175 | 1/13/2026 |
| 1.6.2 | 140 | 1/10/2026 |
| 1.6.1 | 98 | 1/10/2026 |
| 1.3.31 | 113 | 1/9/2026 |
| 1.3.30 | 95 | 1/9/2026 |
| 1.3.29 | 112 | 1/9/2026 |
| 1.3.28 | 244 | 1/9/2026 |
| 1.3.27 | 97 | 1/9/2026 |
| 1.3.26 | 101 | 1/9/2026 |
| 1.3.25 | 97 | 1/9/2026 |
| 1.3.24 | 98 | 1/9/2026 |
| 1.3.23 | 131 | 1/6/2026 |
| 1.3.22 | 119 | 1/6/2026 |
| 1.3.21 | 97 | 1/6/2026 |
| 1.3.20 | 106 | 1/2/2026 |
| 1.3.19 | 107 | 1/2/2026 |
| 1.3.18 | 140 | 1/1/2026 |
| 1.3.17 | 106 | 1/1/2026 |
| 1.3.16 | 113 | 12/31/2025 |
| 1.3.15 | 107 | 12/31/2025 |
| 1.3.14 | 104 | 12/31/2025 |
| 1.3.13 | 102 | 12/31/2025 |
| 1.3.12 | 108 | 12/31/2025 |
| 1.3.10 | 111 | 12/31/2025 |
| 1.3.9 | 105 | 12/31/2025 |
| 1.3.8 | 113 | 12/30/2025 |
| 1.3.7 | 174 | 12/30/2025 |
| 1.3.6 | 100 | 12/30/2025 |
| 1.3.5 | 111 | 12/30/2025 |
| 1.3.4 | 120 | 12/30/2025 |
| 1.3.3 | 107 | 12/30/2025 |
| 1.3.2 | 108 | 12/30/2025 |
| 1.3.1 | 106 | 12/30/2025 |
| 1.3.0 | 106 | 12/30/2025 |
| 1.2.4 | 119 | 12/29/2025 |
| 1.2.3 | 110 | 12/29/2025 |
| 1.2.2 | 110 | 12/29/2025 |
| 1.2.1 | 197 | 12/25/2025 |
| 1.2.0 | 219 | 12/24/2025 |
| 1.1.8 | 290 | 12/16/2025 |
| 1.1.7 | 268 | 12/16/2025 |
| 1.1.6 | 296 | 12/16/2025 |
| 1.1.5 | 257 | 12/16/2025 |
| 1.1.4 | 261 | 12/16/2025 |
| 1.1.3 | 264 | 12/16/2025 |
| 1.1.2 | 277 | 12/15/2025 |
| 1.1.1 | 241 | 12/15/2025 |
| 1.1.0 | 245 | 12/15/2025 |
| 1.0.0 | 186 | 12/14/2025 |
Initial release: BannedApiAnalyzers, conditional polyfills, xunit.v3 + MTP, CLAUDE.md generation