Partilhar via


Projeto Dotnet Converter

Este artigo aplica-se a: ✔️ SDK do .NET 10 e versões posteriores

Nome

dotnet project convert - Converte um programa baseado em ficheiros num programa baseado em projetos.

Sinopse

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

dotnet project convert -h|--help

Description

O dotnet project convert comando converte um programa baseado em ficheiros num programa baseado em projeto. Este comando cria um novo diretório com o nome do seu ficheiro, estrutura um ficheiro .csproj , move o seu código para um ficheiro com o mesmo nome do ficheiro de entrada e traduz quaisquer #: diretivas em propriedades e referências do MSBuild.

Isto torna a transição fluida, de um único ficheiro para um projeto totalmente funcional, construível e extensível. Quando a sua aplicação baseada em ficheiros se torna mais complexa, ou simplesmente quer as capacidades adicionais oferecidas nas aplicações baseadas em projetos, pode convertê-la num projeto padrão.

Processo de conversão

O comando executa as seguintes operações:

  1. Cria um novo diretório com o nome do ficheiro de entrada (sem extensão).
  2. Gera um ficheiro .csproj com o SDK e as propriedades apropriadas.
  3. Move o código-fonte para um ficheiro com o mesmo nome do ficheiro de entrada.
  4. Remove #: diretivas do código-fonte.
  5. Traduz #:sdk diretivas: a primeira #:sdk diretiva torna-se o <Project Sdk="Sdk.Id"> atributo ou <Project Sdk="Sdk.Id/version"> , e quaisquer diretivas adicionais #:sdk tornam-se <Sdk Name="Sdk.Id" /> ou <Sdk Name="Sdk.Id" Version="version" /> elementos.
  6. Traduz #:package diretivas para <PackageReference> elementos no ficheiro do projeto.
  7. Traduz #:property diretivas para propriedades do MSBuild no ficheiro do projeto.
  8. Define as propriedades apropriadas do MSBuild com base no SDK e na framework detetados.

Arguments

  • FILE

    O caminho para o programa baseado em ficheiros a converter. O ficheiro deve ser um ficheiro fonte em C# (tipicamente com uma extensão .cs ).

Opções

  • --dry-run

    Determina alterações sem realmente modificar o sistema de ficheiros. Mostra o que seria criado ou modificado sem realizar a conversão.

  • --force

    Forçar a conversão mesmo que existam diretivas mal formadas. Por defeito, o comando falha se encontrar diretivas que não podem ser devidamente analisadas ou convertidas.

  • --interactive

    Permite que o comando pare e aguarde a entrada ou ação do usuário. Por exemplo, para concluir a autenticação.

  • -o|--output <OUTPUT_DIRECTORY>

    Especifica o diretório de saída do projeto convertido. Se não especificado, é criado um diretório com o mesmo nome do ficheiro de entrada (sem extensão) no diretório atual.

  • -?|-h|--help

    Imprime uma descrição de como usar o comando.

Examples

  • Converter um programa baseado em ficheiros num projeto:

    dotnet project convert app.cs
    

    Dada uma pasta contendo app.cs com o seguinte conteúdo:

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

    A execução dotnet project convert app.cs resulta numa pasta chamada app que contém:

    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>
    
  • Converter um programa baseado em ficheiros num projeto num diretório de saída específico:

    dotnet project convert app.cs --output MyProject
    

Consulte também