Compartilhar via


converter projeto dotnet

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

Nome

dotnet project convert – Converte um programa baseado em arquivo em um programa baseado em projeto.

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 arquivo em um programa baseado em projeto. Esse comando cria um novo diretório nomeado para o arquivo, cria um arquivo .csproj , move seu código para um arquivo com o mesmo nome do arquivo de entrada e converte todas #: as diretivas em propriedades e referências do MSBuild.

Isso torna a transição perfeita, de um único arquivo para um projeto totalmente funcional, compilável e extensível. Quando seu aplicativo baseado em arquivo aumenta em complexidade ou você simplesmente quer as funcionalidades extras oferecidas em aplicativos baseados em projeto, você pode convertê-lo em um projeto padrão.

Processo de conversão

O comando executa as seguintes operações:

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

Arguments

  • FILE

    O caminho para o programa baseado em arquivo a ser convertido. O arquivo deve ser um arquivo de origem C# (normalmente com uma extensão .cs ).

Opções

  • --dry-run

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

  • --force

    Força a conversão mesmo se houver diretivas malformadas. Por padrão, o comando falhará se encontrar diretivas que não podem ser analisadas ou convertidas corretamente.

  • --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 for especificado, um diretório será criado com o mesmo nome do arquivo de entrada (sem extensão) no diretório atual.

  • -?|-h|--help

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

Exemplos

  • Converter um programa baseado em arquivo em um projeto:

    dotnet project convert app.cs
    

    Dada uma pasta que contém 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();
    

    Executando dotnet project convert app.cs resultados em uma pasta chamada aplicativo 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 arquivo em um projeto em um diretório de saída específico:

    dotnet project convert app.cs --output MyProject
    

Consulte também