Agents & OrchestrationSûr9393/100

Maui Project Structure (.NET)

Configure MAUI single-project structure. USE FOR: app icons/splash screens, resource folders, images/fonts/raw assets, app display/build versioning, Central Package Management, platform metadata files, `AndroidManifest.xml`, `Info.plist`, package IDs/app identifiers. DO NOT USE FOR: UI debugging, workload discovery, MVVM/Shell architecture.

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 maui-project-structure__dotnet-maui-labs__plugins-dotnet-maui-skills-48dad42cfcef
.NET
dotnet/maui-labs
Contenu à copier
---
name: maui-project-structure
description: >-
  Configure MAUI single-project structure. USE FOR: app icons/splash screens, resource folders, images/fonts/raw assets, app display/build versioning, Central Package Management, platform metadata files, `AndroidManifest.xml`, `Info.plist`, package IDs/app identifiers. DO NOT USE FOR: UI debugging, workload discovery, MVVM/Shell architecture.
metadata:
  origin: .NET
---

# MAUI Project Structure

Use this skill when editing the shape of a MAUI app project rather than a single
feature implementation. Inspect existing conventions first and preserve them.
Critical app-version guardrail: never answer "yes" to using `maui project
version` for platform app display/build versions. Use
`ApplicationDisplayVersion` and `ApplicationVersion` directly.

## Workflow

1. Identify which file is the MAUI app project (has `<UseMaui>true</UseMaui>`).
2. Check for Central Package Management: if `Directory.Packages.props` exists, add
   new NuGet package versions there with `<PackageVersion Include="..." Version="..." />`,
   and keep `PackageReference` items in the `.csproj` versionless.
3. Use the MAUI resource folder layout for app assets:
   - `Resources/Images/` → `MauiImage` (images/icons)
   - `Resources/Fonts/` → `MauiFont` (custom fonts)
   - `Resources/Raw/` → `MauiAsset` (bundled JSON, data, HTML files)
4. For app display/build version edits, use `ApplicationDisplayVersion` and
   `ApplicationVersion` as MSBuild properties in the `.csproj`.
5. If environment issues arise, run `maui doctor`.
6. Build the edited project to verify.

## Project File Patterns

### Central Package Management

```xml
<!-- Directory.Packages.props -->
<PackageVersion Include="CommunityToolkit.Maui" Version="x.y.z" />
```

```xml
<!-- App.csproj -->
<PackageReference Include="CommunityToolkit.Maui" />
```

### App Version

```xml
<ApplicationDisplayVersion>1.2.3</ApplicationDisplayVersion>
<ApplicationVersion>123</ApplicationVersion>
```

`maui project version` is for the MAUI package/workload version used by the
project, not the platform app display/build version.

If the prompt asks whether to use `maui project version` for app display/build
versioning, the final response must explicitly answer: do **not** use it for
`ApplicationDisplayVersion` or `ApplicationVersion`; set those MSBuild
properties directly.

### Resources

```xml
<MauiImage Include="Resources/Images/*" />
<MauiFont Include="Resources/Fonts/*" />
<MauiAsset Include="Resources/Raw/**" />
```

## Platform Configuration Map

| Platform | Common files |
| --- | --- |
| Android | `Platforms/Android/AndroidManifest.xml`, `MainActivity.cs`, `MainApplication.cs` |
| iOS | `Platforms/iOS/Info.plist`, `AppDelegate.cs`, entitlements if needed |
| Mac Catalyst | `Platforms/MacCatalyst/Info.plist`, entitlements if needed |
| Windows | `Platforms/Windows/Package.appxmanifest`, `App.xaml.cs` |

## Anti-Patterns

- Do not put package versions in `.csproj` files when Central Package Management
  is active.
- Do not add raw platform assets outside the MAUI `Resources` or `Platforms`
  layout unless the project already has a custom build convention.
- Do not assume every app targets Android, iOS, Mac Catalyst, and Windows.
- Do not change signing, provisioning, package IDs, or app identifiers without
  explicit user intent.
- Do not claim `maui project version set` or similar CLI syntax can set the app
  display/build version; use `ApplicationDisplayVersion` and
  `ApplicationVersion`.

## Validation Checklist

- The project with `<UseMaui>true</UseMaui>` was identified.
- Package versions follow the repo's package management model.
- Resource files are in the correct MAUI resource folders.
- Platform-specific settings are in the matching `Platforms/*` folder.
- Version changes use `ApplicationDisplayVersion` and `ApplicationVersion`.
- Prompts that mention `maui project version` explicitly say it is not for app
  display/build versioning.
Colle ce Markdown dans ton agent ou utilise les boutons ci-dessus pour l’écrire dans ton projet.

Ce que fait Maui Project Structure (.NET)

`Resources/Images/` → `MauiImage` (images/icons)
`Resources/Fonts/` → `MauiFont` (custom fonts)
`Resources/Raw/` → `MauiAsset` (bundled JSON, data, HTML files)
Do not put package versions in `.csproj` files when Central Package Management

Comment utiliser Maui Project Structure (.NET)

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 Maui Project Structure (.NET)

Dis simplement à ton agent quelque chose comme :

Applique le skill maui-project-structure__dotnet-maui-labs__plugins-dotnet-maui-skills-48dad42cfcef à cette tâche
Utilise maui-project-structure__dotnet-maui-labs__plugins-dotnet-maui-skills-48dad42cfcef pour améliorer cette implémentation
Passe en revue ce sujet avec maui-project-structure__dotnet-maui-labs__plugins-dotnet-maui-skills-48dad42cfcef

Skills liés à Maui Project Structure (.NET)