Agents & OrchestrationSûr100100/100
SDK Style Conversion (Microsoft)
Converts legacy .NET projects to SDK-style project format. Use when user wants to convert to SDK-style, modernize project files, or migrate from legacy csproj format. Does not change target frameworks.
ou envoie-le directement à ton agent.
Installer dans ton projet
$ curl -fsSL https://arboristhree.xyz/cli/install-skill.mjs -o /tmp/arboris-install-skill.mjs && node /tmp/arboris-install-skill.mjs sdk-style-conversion__microsoft-upgrade-agent-plugins__plugins-upgrade-agent-extenders-upgrade-dotnet-upgrade-skills-scenarios-b65d1dc2ea8eMicrosoft
microsoft/upgrade-agent-plugins
Contenu à copier
---
name: sdk-style-conversion
description: >
Converts legacy .NET projects to SDK-style project format.
Use when user wants to convert to SDK-style, modernize project files,
or migrate from legacy csproj format. Does not change target frameworks.
requires-extension: upgrade-dotnet
metadata:
origin: Microsoft
discovery: scenario
traits: .NET|CSharp|VisualBasic|DotNetCore|DotNetFramework
scenarioTraitsSet: [.NET]
---
# SDK-style Project Conversion
## 1. Assessment
Scan the solution to identify which projects need conversion and what complications to expect. Capture findings in `assessment.md`.
### How to Identify Non-SDK-Style Projects
A project is non-SDK-style if it has any of:
- No `Sdk` attribute on the `<Project>` element
- Explicit file includes (`<Compile Include="...">` for every source file)
- `packages.config` file in the project directory
- `<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />` or similar explicit tool imports
### Patterns to Identify
For each non-SDK-style project, record:
| Pattern | What to Record |
|---------|---------------|
| `packages.config` | Present? — must be migrated to `PackageReference` |
| Explicit file includes (`Compile`, `Content`, `None`, `EmbeddedResource`) | Count — SDK-style uses globbing, these become implicit |
| Custom `Import` elements | Which targets are imported — may need preservation |
| `AssemblyInfo.cs` with assembly attributes | SDK-style auto-generates these — potential duplication |
| Multi-targeting (`TargetFrameworks` plural) | Already SDK-like, may be partial conversion |
| WPF/WinForms markers (`<UseWPF>`, `<UseWindowsForms>`, XAML files) | Needs `Microsoft.NET.Sdk.WindowsDesktop` or `net*-windows` TFM handling |
| Web project type GUIDs (`{349c5851-...}`) | ASP.NET projects have special post-conversion considerations |
| Custom build events or targets | Must be preserved through conversion |
### Risk Indicators
Flag these as higher complexity:
- **ASP.NET Framework web projects**: SDK-style conversion is technically possible, but .NET tooling (Visual Studio, `dotnet build`) does not fully support SDK-style projects targeting ASP.NET Framework (non-Core). Custom MSBuild techniques or workarounds may be needed to maintain build and publish behavior. NuGet compatibility issues can also arise post-conversion
- **Heavy custom MSBuild logic**: Custom targets, conditional imports, or property manipulation that might conflict with SDK defaults
- **Shared projects or linked files**: File linking patterns change in SDK-style
### Assessment Output
Create `assessment.md` in the workflow folder with this structure:
```markdown
# Assessment: SDK-style Conversion
## Projects to Convert
| Project | Path | packages.config | Custom Imports | Special Type | Risk |
|---------|------|----------------|----------------|-------------|------|
| MyApp.Core | src/Core/MyApp.Core.csproj | Yes | None | Class library | Low |
| MyApp.Web | src/Web/MyApp.Web.csproj | Yes | 2 custom targets | ASP.NET | High |
## Already SDK-style (no action needed)
- [list or "none"]
## Baseline
- Solution builds: Yes/No
- Warning count: [number]
## Key Findings
- [Notable patterns, risks, or decisions needed]
```
## 2. Planning
Based on the assessment, create `plan.md` with tasks ordered topologically (leaf dependencies first, so each project can build after conversion).
For each task include:
- Which projects or groups of projects are covered
- What complications are expected (packages.config, custom imports, special project types)
- Risk level and anything requiring user decision
**Hard constraint**: Do not change TargetFramework during conversion — that is a separate scenario (dotnet-version-upgrade).
## 3. Execution
Execute the plan task by task. For any task that involves converting a project to SDK-style, apply the **converting-to-sdk-style** feature skill. It provides a dedicated conversion tool and a two-phase workflow (planning + execution with per-project checklist).
Verify the solution builds after each project or group is converted — catching errors early prevents cascading failures in dependent projects.
## 4. Validation
- Build the full solution — zero errors required (or no regressions from baseline)
- All `packages.config` files removed from converted projects
- No TargetFramework values changed
- If the project had tests, run them and report resultsColle ce Markdown dans ton agent ou utilise les boutons ci-dessus pour l’écrire dans ton projet.
Ce que fait SDK Style Conversion (Microsoft)
No `Sdk` attribute on the `<Project>` element
Explicit file includes (`<Compile Include="...">` for every source file)
`packages.config` file in the project directory
`<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />` or similar explicit tool imports
Comment utiliser SDK Style Conversion (Microsoft)
1
Copie le prompt
Un clic copie le prompt packagé (ou l'envoie à ton agent).
2
L'agent installe le skill
Il ajoute le SKILL.md et ses ressources à ton projet.
3
Activation automatique
Le skill s'active dès que le contexte correspond.
Déclencheurs pour SDK Style Conversion (Microsoft)
Dis simplement à ton agent quelque chose comme :
Applique le skill sdk-style-conversion__microsoft-upgrade-agent-plugins__plugins-upgrade-agent-extenders-upgrade-dotnet-upgrade-skills-scenarios-b65d1dc2ea8e à cette tâche
Utilise sdk-style-conversion__microsoft-upgrade-agent-plugins__plugins-upgrade-agent-extenders-upgrade-dotnet-upgrade-skills-scenarios-b65d1dc2ea8e pour améliorer cette implémentation
Passe en revue ce sujet avec sdk-style-conversion__microsoft-upgrade-agent-plugins__plugins-upgrade-agent-extenders-upgrade-dotnet-upgrade-skills-scenarios-b65d1dc2ea8e
Skills liés à SDK Style Conversion (Microsoft)
Acceleration (Microsoft)
Compare synthetic acceleration options and clearly separate scenario value from forecast commitments.Account Overview (Microsoft)
Create a synthetic Acme account overview and identify evidence that merits seller attention.Acroform Writer (Microsoft)
Use this skill whenever the user wants values written INTO an existing PDF form that lives in the connected SharePoint knowledge source — filling out, completing, populating, or submitting a fillable PDF (application, intake sheet, contract, government form) from data they supply, a spreadsheet row, or the conversation. Triggers include "fill out the job application form", "complete the intake form for [person]", "populate our standard NDA template", and "make this ready to send / non-editable" (flatten). The source form should be found via knowledge search; only ask the user to upload it if knowledge search turns up nothing plausible. different task), and do NOT use it on scanned/image-only PDFs that have no real fillable fields — those need OCR or manual overlay instead, which this skill explicitly detects and reports rather than silently failing.