Condividi tramite


dotnet project convert

Questo articolo si applica a: ✔️ .NET 10 SDK e versioni successive

Nome

dotnet project convert - Converte un programma basato su file in un programma basato su progetto.

Synopsis

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

dotnet project convert -h|--help

Description

Il dotnet project convert comando converte un programma basato su file in un programma basato su progetto. Questo comando crea una nuova directory denominata per il file, esegue lo scaffolding di un file con estensione csproj , sposta il codice in un file con lo stesso nome del file di input e converte tutte le #: direttive in proprietà e riferimenti di MSBuild.

Ciò rende la transizione senza problemi, da un singolo file a un progetto completamente funzionale, compilabile ed estendibile. Quando l'app basata su file aumenta di complessità o si vuole semplicemente che le funzionalità aggiuntive offerte nelle app basate su progetto possano essere convertite in un progetto standard.

Processo di conversione

Il comando esegue le operazioni seguenti:

  1. Crea una nuova directory denominata dopo il file di input (senza estensione).
  2. Genera un file con estensione csproj con le proprietà e l'SDK appropriati.
  3. Sposta il codice sorgente in un file con lo stesso nome del file di input.
  4. Rimuove le #: direttive dal codice sorgente.
  5. Converte le #:sdk direttive: la prima #:sdk direttiva diventa l'attributo <Project Sdk="Sdk.Id"> o <Project Sdk="Sdk.Id/version"> e tutte le direttive aggiuntive #:sdk diventano <Sdk Name="Sdk.Id" /> o <Sdk Name="Sdk.Id" Version="version" /> elementi.
  6. Converte le #:package direttive in <PackageReference> elementi nel file di progetto.
  7. Converte le #:property direttive in proprietà MSBuild nel file di progetto.
  8. Imposta le proprietà MSBuild appropriate in base all'SDK e al framework rilevati.

Arguments

  • FILE

    Percorso del programma basato su file da convertire. Il file deve essere un file di origine C# (in genere con un'estensione .cs ).

Options

  • --dry-run

    Determina le modifiche senza modificare effettivamente il file system. Mostra cosa verrebbe creato o modificato senza eseguire la conversione.

  • --force

    Forza la conversione anche se sono presenti direttive in formato non valido. Per impostazione predefinita, il comando ha esito negativo se rileva direttive che non possono essere analizzate o convertite correttamente.

  • --interactive

    Consente al comando di arrestarsi e attendere l'input o l'azione dell'utente, ad esempio il completamento dell'autenticazione.

  • -o|--output <OUTPUT_DIRECTORY>

    Specifica la directory di output per il progetto convertito. Se non specificato, viene creata una directory con lo stesso nome del file di input (senza estensione) nella directory corrente.

  • -?|-h|--help

    Stampa una descrizione di come usare il comando .

Esempi

  • Convertire un programma basato su file in un progetto:

    dotnet project convert app.cs
    

    Data una cartella contenente app.cs con il contenuto seguente:

    #: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'esecuzione dotnet project convert app.cs dei risultati viene eseguita in una cartella denominata app contenente:

    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>
    
  • Convertire un programma basato su file in un progetto in una directory di output specifica:

    dotnet project convert app.cs --output MyProject
    

Vedere anche