packaging
Project files, central package management, multi-targeting, and slnx registration
Install / Use
npx skills add MJWherry/LyoInstalls into whichever agent you are using.
Cursor Rules
Cursor IDE rules (v2)
Quality Score
Category
Development & EngineeringSupported Platforms
Tags
Skill content
View source on GitHubdescription: Project files, central package management, multi-targeting, and slnx registration globs: /*.csproj,/Directory.Packages.props,**/*.slnx alwaysApply: false
Packaging & Project Files
Central Package Management (CPM)
PackageReferenceentries in csproj files must have NOVersionattribute. Versions live only inLyo.Net/Directory.Packages.propsas minimum ranges, e.g.<PackageVersion Include="Foo" Version="[1.2.3,)"/>.- When adding a dependency: add the
PackageVersiontoDirectory.Packages.props(alphabetical order), then reference it version-less in the csproj.
Minimal csproj shape
Lyo.Net/Directory.Build.props already sets LangVersion=latest, Nullable=enable, ImplicitUsings=enable, packaging metadata, and doc generation — never repeat these per project. A library csproj declares only:
<PropertyGroup>
<TargetFrameworks>netstandard2.0;net10.0</TargetFrameworks>
<Description>...</Description>
<PackageTags>...</PackageTags>
</PropertyGroup>
plus references and <InternalsVisibleTo Include="Lyo.{X}.Tests"/> when internals are tested. Directory.Build.props / Directory.Build.targets pack README.md automatically when that file exists — do not repeat PackageReadmeFile or a None pack item.
Multi-targeting
- Reusable libraries multi-target
netstandard2.0;net10.0. PolySharp (wired inDirectory.Build.targets) polyfills modern language features on netstandard2.0, so modern syntax is fine everywhere. - net10-only BCL APIs need
#ifguards or conditionalItemGroups (seeLyo.Net/Core/Common/Lyo.Common/Lyo.Common.csprojfor the conditionalSystem.Text.Json/System.Memorypattern). - App hosts, Blazor components, tests, and benchmarks target
net10.0only.
Solution registration
- Every new project needs a
<Project Path="..."/>entry inside the matching<Folder>element ofLyo.Net/Lyo.slnx. Solution folders mirror disk paths; create a new<Folder Name="/Area/Group/">if none exists. - Package documentation source of truth is
docs.json(schema:docs/catalog/schema/package.schema.json). When adding or changing public APIs, update that package’sdocs.json— do not hand-edit generatedREADME.mdfiles. Regenerate READMEs viascripts/docs/project-docs.py(e.g.render). Never runextract(it overwrites JSON from README and is lossy). - Every package still ships a generated
README.md(packed into the NuGet package viaPackageReadmeFile).
Related Skills
claude-howto
41.0kA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.
ai-job-search
31.9kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
guizang-ppt-skill
24.1kAI-agent Skill for generating polished HTML slide decks: editorial magazine and Swiss layouts, image prompts, social covers, and a WebGL/low-power presentation runtime.
colleague-skill
22.6k将冰冷的离别化为温暖的 Skill,欢迎加入数字生命1.0!Transforming cold farewells into warm skills? It's giving rebirth era. Welcome to Digital Life 1.0. 🫶
Security Score
Audited on Invalid Date
