Partager via


dotnet project convert

Cet article s’applique à : ✔️ SDK .NET 10 et versions ultérieures

Nom

dotnet project convert - Convertit un programme basé sur un fichier en programme basé sur un projet.

Synopsis

dotnet project convert <FILE> [--dry-run] [--force] [--interactive]
    [-o|--output <OUTPUT_DIRECTORY>]

dotnet project convert -h|--help

Descriptif

La dotnet project convert commande convertit un programme basé sur un fichier en programme basé sur un projet. Cette commande crée un répertoire nommé pour votre fichier, crée une structure de fichier .csproj , déplace votre code dans un fichier portant le même nom que le fichier d’entrée et traduit toutes les #: directives en propriétés et références MSBuild.

Cela rend la transition transparente, d’un seul fichier à un projet entièrement fonctionnel, pouvant être généré et extensible. Lorsque votre application basée sur des fichiers augmente en complexité ou que vous souhaitez simplement bénéficier des fonctionnalités supplémentaires offertes dans les applications basées sur des projets, vous pouvez la convertir en projet standard.

Processus de conversion

La commande effectue les opérations suivantes :

  1. Crée un répertoire nommé après le fichier d’entrée (sans extension).
  2. Génère un fichier .csproj avec les propriétés et sdk appropriés.
  3. Déplace le code source vers un fichier portant le même nom que le fichier d’entrée.
  4. Supprime les #: directives du code source.
  5. Traduit les #:sdk directives : la première #:sdk directive devient l’attribut ou <Project Sdk="Sdk.Id/version"> l’attribut<Project Sdk="Sdk.Id">, et toutes les directives supplémentaires #:sdk deviennent <Sdk Name="Sdk.Id" /> ou <Sdk Name="Sdk.Id" Version="version" /> d’éléments.
  6. Traduit les #:package directives en <PackageReference> éléments dans le fichier projet.
  7. Traduit les #:property directives en propriétés MSBuild dans le fichier projet.
  8. Définit les propriétés MSBuild appropriées en fonction du Kit de développement logiciel (SDK) et de l’infrastructure détectées.

Arguments

  • FILE

    Chemin d’accès au programme basé sur les fichiers à convertir. Le fichier doit être un fichier source C# (généralement avec une extension .cs ).

Options

  • --dry-run

    Détermine les modifications sans réellement modifier le système de fichiers. Affiche ce qui serait créé ou modifié sans effectuer la conversion.

  • --force

    Force la conversion même s’il existe des directives incorrectes. Par défaut, la commande échoue si elle rencontre des directives qui ne peuvent pas être correctement analysées ou converties.

  • --interactive

    Permet à la commande d’arrêter et d’attendre l’entrée ou l’action de l’utilisateur. Par exemple, pour terminer l’authentification.

  • -o|--output <OUTPUT_DIRECTORY>

    Spécifie le répertoire de sortie du projet converti. S’il n’est pas spécifié, un répertoire est créé avec le même nom que le fichier d’entrée (sans extension) dans le répertoire actif.

  • -?|-h|--help

    Imprime une description de l’utilisation de la commande.

Examples

  • Convertissez un programme basé sur un fichier en projet :

    dotnet project convert app.cs
    

    Compte tenu d’un dossier contenant app.cs avec le contenu suivant :

    #:sdk Microsoft.NET.Sdk.Web
    #:package Microsoft.AspNetCore.OpenApi@10.*-*
    
    var builder = WebApplication.CreateBuilder();
    
    builder.Services.AddOpenApi();
    
    var app = builder.Build();
    
    app.MapGet("/", () => "Hello, world!");
    app.Run();
    

    L’exécution dotnet project convert app.cs génère un dossier appelé application contenant :

    app/app.cs :

    var builder = WebApplication.CreateBuilder();
    
    builder.Services.AddOpenApi();
    
    var app = builder.Build();
    
    app.MapGet("/", () => "Hello, world!");
    app.Run();
    

    app/app.csproj :

    <Project Sdk="Microsoft.NET.Sdk.Web">
    
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net10.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
        <PublishAot>true</PublishAot>
        <PackAsTool>true</PackAsTool>
      </PropertyGroup>
    
      <ItemGroup>
        <PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="10.*-*" />
      </ItemGroup>
    
    </Project>
    
  • Convertissez un programme basé sur un fichier en projet dans un répertoire de sortie spécifique :

    dotnet project convert app.cs --output MyProject
    

Voir aussi