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

525
Views
MsBuild cannot resolve MsBuildMajorVersion

I have Visual Studio Solution with more than 100 projects. Five of them have Fody's nuget packages installed (version 6.0.3). When I try to build the Solution I get the following error:

Fody.6.3.0\build\Fody.targets(38,12): error MSB4086: A numeric comparison was attempted on "$(MsBuildMajorVersion)" that evaluates to "" instead of a number, in condition "($(MsBuildMajorVersion) < 16)"

After this failed build I try to build repeatedly and after several attempts (sometimes one, sometimes five) building finishes with success. I was trying to reinstall all nuget packages, clear nuget caches, reinstall Visual Studio, set MSBUILDDISABLENODEREUSE variable and nothing helped.

Visual Studio 2019 is in version 16.8.4 and all projects have .NET Framework in version 4.8.

UPDATE:

The problem exists on my machine only. On colleagues' workstations, everything works fine. I found the tip that after an unsuccessful build Visual Studio should be restarted and the build process is successful. This tip is a sufficient workaround for me.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

The solution to the problem was to migrate from packages.config to PackageReference. You can do this in Visual Studio 2019: within Solution Explorer expand your project, than click right mouse button on the References and choose Migrate packages.config to PackageReference....

over 4 years ago · Santiago Trujillo Report

0

Try to install the latest Costura.Fody nuget package additionally on those five projects and also try to update Fody nuget package to the latest 6.3.0 version.

And then rebuild your project to check whether the issue happens.

over 4 years ago · Santiago Trujillo Report

0

I was able to fix this problem by adding to .csproj code to restore nugets (just copied from project created in VS 2017). Converting packages.config to PackageReference also worked for me but causes some other problems when build by msbuild.

Need to add following lines at the end of first PropertyGroup

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

And following line EnsureNuGetPackageBuildImports target:

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

See attached screenshot for more details:

enter image description here

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!