Sdílet prostřednictvím


dotnet project convert

Tento článek se vztahuje na: ✔️ .NET 10 SDK a novější verze

Název

dotnet project convert - Převede souborový program na projektový program.

Přehled

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

dotnet project convert -h|--help

Description

Příkaz dotnet project convert převede program založený na souborech na projektový program. Tento příkaz vytvoří nový adresář pojmenovaný pro váš soubor, vygeneruje soubor .csproj , přesune kód do souboru se stejným názvem jako vstupní soubor a přeloží všechny #: direktivy do vlastností a odkazů NÁSTROJE MSBuild.

Díky tomu je přechod bezproblémový z jednoho souboru do plně funkčního, sestavitelného a rozšiřitelného projektu. Když se vaše aplikace založená na souborech zvětšuje nebo jednoduše chcete, aby byly v projektových aplikacích k dispozici další funkce, můžete ji převést na standardní projekt.

Proces převodu

Příkaz provede následující operace:

  1. Vytvoří nový adresář pojmenovaný za vstupním souborem (bez přípony).
  2. Vygeneruje soubor .csproj s odpovídající sadou SDK a vlastnostmi.
  3. Přesune zdrojový kód do souboru se stejným názvem jako vstupní soubor.
  4. Odebere direktivy #: ze zdrojového kódu.
  5. Překládá direktivy: první #:sdk direktiva se stane <Project Sdk="Sdk.Id"> nebo <Project Sdk="Sdk.Id/version"> atributem a všechny další #:sdk direktivy #:sdk se stanou <Sdk Name="Sdk.Id" /> nebo <Sdk Name="Sdk.Id" Version="version" /> prvky.
  6. Převede direktivy na <PackageReference> elementy #:package v souboru projektu.
  7. Překládá direktivy #:property na vlastnosti MSBuild v souboru projektu.
  8. Nastaví odpovídající vlastnosti NÁSTROJE MSBuild na základě zjištěné sady SDK a architektury.

Arguments

  • FILE

    Cesta k programu založenému na souborech, který chcete převést. Soubor musí být zdrojovým souborem jazyka C# (obvykle s příponou .cs ).

Možnosti

  • --dry-run

    Určuje změny bez skutečné úpravy systému souborů. Zobrazuje, co by se vytvořilo nebo upravilo bez provedení převodu.

  • --force

    Vynutí převod i v případě, že existují poškozené direktivy. Ve výchozím nastavení příkaz selže, pokud narazí na direktivy, které nelze správně analyzovat nebo převést.

  • --interactive

    Umožňuje příkazu zastavit a čekat na uživatelský vstup nebo akci. Například k dokončení ověřování.

  • -o|--output <OUTPUT_DIRECTORY>

    Určuje výstupní adresář pro převedený projekt. Pokud není zadaný, vytvoří se adresář se stejným názvem jako vstupní soubor (bez přípony) v aktuálním adresáři.

  • -?|-h|--help

    Vytiskne popis použití příkazu.

Examples

  • Převeďte souborový program na projekt:

    dotnet project convert app.cs
    

    Složka obsahující app.cs s následujícím obsahem:

    #: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();
    

    Spuštění dotnet project convert app.cs výsledků ve složce označované jako aplikace obsahující:

    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>
    
  • Převeďte program založený na souborech na projekt v konkrétním výstupním adresáři:

    dotnet project convert app.cs --output MyProject
    

Viz také