Aracılığıyla paylaş


dotnet project convert

Bu makale şunlar için geçerlidir: .NET 10 SDK ve sonraki sürümleri ✔️

İsim

dotnet project convert - Dosya tabanlı bir programı proje tabanlı bir programa dönüştürür.

Özet

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

dotnet project convert -h|--help

Description

komutu, dotnet project convert dosya tabanlı bir programı proje tabanlı bir programa dönüştürür. Bu komut, dosyanız için adlı yeni bir dizin oluşturur, bir .csproj dosyasının iskelesini oluşturur, kodunuzu giriş dosyasıyla aynı ada sahip bir dosyaya taşır ve tüm #: yönergeleri MSBuild özelliklerine ve başvurularına çevirir.

Bu, tek bir dosyadan tamamen işlevsel, derlenebilir ve genişletilebilir bir projeye geçişi sorunsuz hale getirir. Dosya tabanlı uygulamanızın karmaşıklığı arttığında veya yalnızca proje tabanlı uygulamalarda sunulan ek özellikleri istiyorsanız, bunu standart bir projeye dönüştürebilirsiniz.

Konuşma işlemi

komutu aşağıdaki işlemleri gerçekleştirir:

  1. Giriş dosyasından (uzantı olmadan) adlı yeni bir dizin oluşturur.
  2. Uygun SDK ve özelliklere sahip bir .csproj dosyası oluşturur.
  3. Kaynak kodu giriş dosyasıyla aynı ada sahip bir dosyaya taşır.
  4. #: Kaynak kodundan yönergeleri kaldırır.
  5. #:sdk Yönergeleri çevirir: ilk #:sdk yönerge veya <Project Sdk="Sdk.Id/version"> özniteliğine dönüşür <Project Sdk="Sdk.Id"> ve ek #:sdk yönergeler veya <Sdk Name="Sdk.Id" Version="version" /> öğeleri olur<Sdk Name="Sdk.Id" />.
  6. #:package Yönergeleri proje dosyasındaki öğelere <PackageReference> çevirir.
  7. #:property Yönergeleri proje dosyasındaki MSBuild özelliklerine çevirir.
  8. Algılanan SDK ve çerçeveye göre uygun MSBuild özelliklerini ayarlar.

Arguments

  • FILE

    Dönüştürülecek dosya tabanlı programın yolu. Dosya bir C# kaynak dosyası olmalıdır (genellikle .cs uzantılı).

Options

  • --dry-run

    Dosya sistemini gerçekten değiştirmeden değişiklikleri belirler. Dönüştürme gerçekleştirilmeden nelerin oluşturulacağını veya değiştirileceğini gösterir.

  • --force

    Hatalı biçimlendirilmiş yönergeler olsa bile dönüştürmeyi zorlar. Varsayılan olarak, düzgün ayrıştırılamayan veya dönüştürülemeyen yönergelerle karşılaşırsa komut başarısız olur.

  • --interactive

    Komutun durmasına ve kullanıcı girişini veya eylemini beklemesine izin verir. Örneğin, kimlik doğrulamasını tamamlamak için.

  • -o|--output <OUTPUT_DIRECTORY>

    Dönüştürülen projenin çıkış dizinini belirtir. Belirtilmezse, geçerli dizindeki giriş dosyasıyla (uzantı olmadan) aynı ada sahip bir dizin oluşturulur.

  • -?|-h|--help

    komutunun nasıl kullanılacağına ilişkin bir açıklama yazdırır.

Örnekler

  • Dosya tabanlı bir programı projeye dönüştürme:

    dotnet project convert app.cs
    

    Aşağıdaki içeriğe sahip app.cs içeren bir klasör verilir:

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

    Sonuçları aşağıdakiler içeren uygulama adlı bir klasörde çalıştırmadotnet project convert app.cs:

    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>
    
  • Dosya tabanlı bir programı belirli bir çıkış dizinindeki bir projeye dönüştürün:

    dotnet project convert app.cs --output MyProject
    

Ayrıca bakınız