Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

530
Views
MsBuild no puede resolver MsBuildMajorVersion

Tengo Visual Studio Solution con más de 100 proyectos. Cinco de ellos tienen instalados los paquetes nuget de Fody (versión 6.0.3). Cuando intento construir la solución, aparece el siguiente error:

Fody.6.3.0\build\Fody.targets(38,12): error MSB4086: se intentó una comparación numérica en "$(MsBuildMajorVersion)" que se evalúa como "" en lugar de un número, en la condición "($(MsBuildMajorVersion) <16)"

Después de esta compilación fallida, trato de compilar repetidamente y después de varios intentos (a veces uno, a veces cinco) la construcción termina con éxito. Estaba tratando de reinstalar todos los paquetes nuget, borrar los cachés nuget, reinstalar Visual Studio, configurar la variable MSBUILDDISABLENODEREUSE y nada ayudó.

Visual Studio 2019 está en la versión 16.8.4 y todos los proyectos tienen .NET Framework en la versión 4.8.

ACTUALIZAR:

El problema existe solo en mi máquina. En las estaciones de trabajo de los colegas, todo funciona bien. Encontré la sugerencia de que después de una compilación fallida, Visual Studio debe reiniciarse y el proceso de compilación es exitoso. Este consejo es una solución suficiente para mí.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

La solución al problema fue migrar de packages.config a PackageReference . Puede hacer esto en Visual Studio 2019: dentro del Explorador de soluciones , expanda su proyecto, luego haga clic con el botón derecho del mouse en las Referencias y elija Migrate packages.config to PackageReference... .

over 4 years ago · Santiago Trujillo Report

0

Intente instalar el paquete nuget Costura.Fody más reciente además en esos cinco proyectos y también intente actualizar el paquete Fody Fody a la última versión 6.3.0 .

Y luego reconstruya su proyecto para verificar si ocurre el problema.

over 4 years ago · Santiago Trujillo Report

0

Pude solucionar este problema agregando código .csproj para restaurar nugets (simplemente copiado del proyecto creado en VS 2017). La conversión de packages.config a PackageReference también funcionó para mí, pero causa algunos otros problemas cuando se compila con msbuild.

Necesita agregar las siguientes líneas al final del primer PropertyGroup

 <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> <RestorePackages>true</RestorePackages> </PropertyGroup>

Y siguiendo la línea de destino de GuaranteeNuGetPackageBuildImports:

 <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" /> <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">

Ver captura de pantalla adjunta para más detalles:

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!