Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

239
Visualizações
¿Cuál es la diferencia entre usar dotnet y MsBuild para crear aplicaciones .NET?

Tuve que hacer algunas compilaciones sin usar Visual Studio por primera vez, y claramente hay una brecha en mi conocimiento sobre MsBuild y el proceso de compilación.

Entonces, ¿cuáles son las diferencias entre los dos procesos de compilación a continuación?


Opción 1:

 dotnet build C:\Dev\trunk\Mvc.sln

Esta opción usa "Build Engine versión 16.8.3+39993bd9d para .NET". Supongo que esto significa que de esta manera se puede usar para .NET Core, ya que no hace referencia a "Framework".


Opcion 2:

 msbuild C:\Dev\trunk\Mvc.sln

Esta opción usa "Build Engine versión 16.8.2+25e4d540b para .NET Framework".


Supuse que el comando "dotnet build" era solo una forma abreviada de usar MsBuild. Sin embargo, el registro proporcionado por ambos es bastante diferente y ambos producen resultados diferentes.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Roslyn, la plataforma de compilación de C#, es una biblioteca .NET Standard 2.0, lo que significa que puede ejecutarse tanto en .NET Framework 4.6.1+ como en .NET Core 2.0+ (1) .

Visual Studio, que incluye MSBuild, se ejecuta en .NET Framework. Cuando crea un proyecto con Visual Studio (o directamente con MSBuild), ejecuta Roslyn en .NET Framework. Visual Studio sabe cómo procesar csprojs de estilo SDK y csprojs heredados que no son de estilo SDK e invocar a Roslyn en consecuencia. La versión de Roslyn que se usa está vinculada a la versión de Visual Studio.

dotnet build es una herramienta separada y es una aplicación .NET Core. Solo sabe cómo compilar csprojs de estilo SDK y lo hace ejecutando Roslyn en .NET Core. Roslyn se distribuye con los SDK de .NET Core y dotnet build carga a Roslyn desde una de estas versiones de SDK instaladas (normalmente la última).

Estas dos formas de crear un proyecto de C# son más o menos equivalentes e invocan el mismo código de compilación. Sin embargo, difieren en cuanto a dónde pueden ejecutarse (Visual Studio es .NET Framework y solo para Windows, dotnet build es .NET Core y puede ejecutarse en varias plataformas) y si pueden compilar csprojs heredados que no sean de estilo SDK. dotnet build también es un poco más agradable de usar desde la línea de comandos.

Tenga en cuenta que el tiempo de ejecución en el que se carga Roslyn no tiene relación con la IL compilada que Roslyn puede emitir: Roslyn que se ejecuta en .NET Framework puede emitir IL que ejecuta .NET Core sin problemas, y viceversa.

Si está utilizando analizadores que apuntan a .NET Core (poco probable, ya que se recomienda que los analizadores apunten a .NET Standard 2.0), estos solo se ejecutarán desde dotnet build .


(1) Estoy usando ".NET Core" para referirme tanto a .NET Core como a .NET 5+.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda