Udostępnij przez


dotnet project convert

Ten artykuł dotyczy: ✔️ zestawu .NET 10 SDK i nowszych wersji

Name

dotnet project convert — Konwertuje program oparty na plikach na program oparty na projekcie.

Streszczenie

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

dotnet project convert -h|--help

Description

Polecenie dotnet project convert konwertuje program oparty na plikach na program oparty na projekcie. To polecenie tworzy nowy katalog o nazwie dla pliku, szkielety pliku csproj , przenosi kod do pliku o takiej samej nazwie jak plik wejściowy i tłumaczy wszystkie #: dyrektywy na właściwości i odwołania msBuild.

Dzięki temu przejście z pojedynczego pliku do w pełni funkcjonalnego, kompilowalnego i rozszerzalnego projektu. Gdy aplikacja oparta na plikach rośnie w złożoności lub potrzebujesz dodatkowych możliwości oferowanych w aplikacjach opartych na projekcie, możesz przekonwertować ją na standardowy projekt.

Proces konwersji

Polecenie wykonuje następujące operacje:

  1. Tworzy nowy katalog o nazwie po pliku wejściowym (bez rozszerzenia).
  2. Generuje plik csproj z odpowiednim zestawem SDK i właściwościami.
  3. Przenosi kod źródłowy do pliku o takiej samej nazwie jak plik wejściowy.
  4. Usuwa #: dyrektywy z kodu źródłowego.
  5. #:sdk Tłumaczy dyrektywy: pierwsza #:sdk dyrektywa staje się atrybutem <Project Sdk="Sdk.Id"> lub<Project Sdk="Sdk.Id/version">, a wszelkie dodatkowe #:sdk dyrektywy stają się <Sdk Name="Sdk.Id" /> elementami lub <Sdk Name="Sdk.Id" Version="version" /> .
  6. #:package Tłumaczy dyrektywy na <PackageReference> elementy w pliku projektu.
  7. #:property Tłumaczy dyrektywy na właściwości MSBuild w pliku projektu.
  8. Ustawia odpowiednie właściwości programu MSBuild na podstawie wykrytego zestawu SDK i platformy.

Arguments

  • FILE

    Ścieżka do programu opartego na plikach do konwersji. Plik musi być plikiem źródłowym języka C# (zazwyczaj z rozszerzeniem .cs ).

Opcje

  • --dry-run

    Określa zmiany bez faktycznego modyfikowania systemu plików. Pokazuje, co zostałoby utworzone lub zmodyfikowane bez przeprowadzania konwersji.

  • --force

    Wymusza konwersję, nawet jeśli istnieją źle sformułowane dyrektywy. Domyślnie polecenie kończy się niepowodzeniem, jeśli napotka dyrektywy, których nie można poprawnie przeanalizować ani przekonwertować.

  • --interactive

    Umożliwia zatrzymanie polecenia i oczekiwanie na wprowadzenie lub działanie użytkownika. Na przykład w celu ukończenia uwierzytelniania.

  • -o|--output <OUTPUT_DIRECTORY>

    Określa katalog wyjściowy przekonwertowanego projektu. Jeśli nie zostanie określony, katalog zostanie utworzony o tej samej nazwie co plik wejściowy (bez rozszerzenia) w bieżącym katalogu.

  • -?|-h|--help

    Wyświetla opis sposobu używania polecenia .

Przykłady

  • Przekonwertuj program oparty na plikach na projekt:

    dotnet project convert app.cs
    

    Biorąc pod uwagę folder zawierający app.cs z następującą zawartością:

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

    Uruchomienie dotnet project convert app.cs wyników w folderze o nazwie app zawierającym:

    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>
    
  • Przekonwertuj program oparty na plikach na projekt w określonym katalogu wyjściowym:

    dotnet project convert app.cs --output MyProject
    

Zobacz także