Teilen über


dotnet-Projekt konvertieren

Dieser Artikel bezieht sich auf: ✔️ .NET 10 SDK und höhere Versionen

Name

dotnet project convert – Konvertiert ein dateibasiertes Programm in ein projektbasiertes Programm.

Zusammenfassung

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

dotnet project convert -h|--help

Description

Der dotnet project convert Befehl konvertiert ein dateibasiertes Programm in ein projektbasiertes Programm. Mit diesem Befehl wird ein neues Verzeichnis erstellt, das für Ihre Datei benannt ist, eine CSPROJ-Datei erstellt, den Code in eine Datei mit demselben Namen wie die Eingabedatei verschiebt und alle #: Direktiven in MSBuild-Eigenschaften und -Verweise übersetzt.

Dadurch wird der Übergang nahtlos von einer einzelnen Datei zu einem voll funktionsfähigen, buildierbaren und erweiterbaren Projekt. Wenn Ihre dateibasierte App komplexer wird oder Sie einfach die zusätzlichen Funktionen benötigen, die in projektbasierten Apps bereitgestellt werden, können Sie sie in ein Standardprojekt konvertieren.

Konvertierungsprozess

Der Befehl führt die folgenden Vorgänge aus:

  1. Erstellt ein neues Verzeichnis, das nach der Eingabedatei (ohne Erweiterung) benannt ist.
  2. Generiert eine CSPROJ-Datei mit dem entsprechenden SDK und den entsprechenden Eigenschaften.
  3. Verschiebt den Quellcode in eine Datei mit demselben Namen wie die Eingabedatei.
  4. #: Entfernt Direktiven aus dem Quellcode.
  5. #:sdk Übersetzt Direktiven: Die erste #:sdk Direktive wird zum <Project Sdk="Sdk.Id"> Oder <Project Sdk="Sdk.Id/version"> Attribut, und alle zusätzlichen #:sdk Direktiven werden <Sdk Name="Sdk.Id" /> oder <Sdk Name="Sdk.Id" Version="version" /> Elemente.
  6. #:package Übersetzt Direktiven in <PackageReference> Elemente in der Projektdatei.
  7. #:property Übersetzt Direktiven in MSBuild-Eigenschaften in der Projektdatei.
  8. Legt geeignete MSBuild-Eigenschaften basierend auf dem SDK und dem erkannten Framework fest.

Arguments

  • FILE

    Der Pfad zum zu konvertierenden dateibasierten Programm. Die Datei muss eine C#-Quelldatei sein (in der Regel mit einer .cs Erweiterung).

Options

  • --dry-run

    Bestimmt Änderungen, ohne das Dateisystem tatsächlich zu ändern. Zeigt an, was erstellt oder geändert werden würde, ohne die Konvertierung auszuführen.

  • --force

    Erzwingt die Konvertierung auch dann, wenn falsch formatierte Direktiven vorhanden sind. Standardmäßig schlägt der Befehl fehl, wenn er auf Direktiven trifft, die nicht ordnungsgemäß analysiert oder konvertiert werden können.

  • --interactive

    Ermöglicht es dem Befehl, die Benutzereingabe oder -aktion zu beenden und zu warten. Um beispielsweise die Authentifizierung abzuschließen.

  • -o|--output <OUTPUT_DIRECTORY>

    Gibt das Ausgabeverzeichnis für das konvertierte Projekt an. Wenn nicht angegeben, wird ein Verzeichnis mit demselben Namen wie die Eingabedatei (ohne Erweiterung) im aktuellen Verzeichnis erstellt.

  • -?|-h|--help

    Gibt eine Beschreibung zur Verwendung des Befehls aus.

Examples

  • Konvertieren eines dateibasierten Programms in ein Projekt:

    dotnet project convert app.cs
    

    Bei einem Ordner mit app.cs mit folgendem Inhalt:

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

    Das Ausführen dotnet project convert app.cs führt zu einem Ordner namens "App ", der Folgendes enthält:

    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>
    
  • Konvertieren eines dateibasierten Programms in ein Projekt in einem bestimmten Ausgabeverzeichnis:

    dotnet project convert app.cs --output MyProject
    

Siehe auch