Visual Studio 试图在条件“$(MSBuildVersion)>= 16.1.0”下对计算结果为“”而不是数字的“$(MSBuildVersion)”进行数字比较)

jgovgodb  于 2023-02-05  发布在  其他
关注(0)|答案(4)|浏览(471)

我得到这个错误,当我尝试重新加载我的项目,我已经卸载,如下面的截图所示:

它说这行来自我的Microsoft.Managed.Core.targets

  • 我尝试更新我的NuGet软件包。
  • 我尝试将环境变量路径值更改为msbuild.exe所在的位置
  • 我尝试寻找一个解决方案来更改Microsoft.Managed.Core.target以忽略该检查,但我不认为这是一个好的解决方案

失败发生在这里。我相信这是失败的行。下面是来自我的microsoft managed.core.targets

<Import Project="Microsoft.Managed.EditorConfig.targets" Condition="$(MSBuildVersion) >= 16.1.0" />

这是来自microsoft.managed.editorconfig.targets

<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (c)  Microsoft.  All Rights Reserved.  Licensed under the Apache License, Version 2.0.  See License.txt in the project root for license information. -->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  
  <PropertyGroup>
    <!-- Default this to false until the ".editorconfig in compiler" feature is no longer experimental.
         At that point this PropertyGroup can simply be deleted. -->
    <DiscoverEditorConfigFiles Condition="'$(DiscoverEditorConfigFiles)' == ''">false</DiscoverEditorConfigFiles>
    
    
    
  </PropertyGroup>

  <ItemGroup>
    <PotentialEditorConfigFiles Include="@(Compile->GetPathsOfAllDirectoriesAbove()->Combine('.editorconfig'))" Condition="'$(DiscoverEditorConfigFiles)' != 'false'" />
    <EditorConfigFiles Include="@(PotentialEditorConfigFiles->Exists())" Condition="'$(DiscoverEditorConfigFiles)' != 'false'" />
  </ItemGroup>
  
  
</Project>
qgelzfjb

qgelzfjb1#

我能够解决这个问题的方法是重新启动VisualStudio

xpszyzbs

xpszyzbs2#

这和我得到的错误一样。
在条件"$(MSBuildVersion)〉= 16.1.0"下,试图对计算结果为""而不是数字的"$(MSBuildVersion)"进行数字比较。
我解决这个问题的方法是在VisualStudio中检查更新,并确保我有最新版本的VisualStudio。
微软的安迪·戈克在this site中写道:

The Microsoft.Net.Compilers package requires newer versions of MSBuild as Visual Studio updates, so the 3.1.0 version requires MSBuild version 16.1.

希望这有帮助!

z9smfwbn

z9smfwbn3#

微软(MS)计算机上的生成工具不是最新的。Visual Studio(VS)2017集成开发环境您计算机上的(IDE)正在查找MS生成工具版本16.1.0。从错误消息中的版本号16.1.0可以明显看出这一点。您应该将VS 2017更新到最新修订版,以将MS生成工具更新到最新版本。当您在计算机上打开VS安装程序EXE时,如果您的Visual Studio安装不是最新的,您将在VS 2017部分看到一个更新按钮,如下图所示:

单击“更新”按钮以更新VS,VS也将在内部更新MS生成工具。完成更新设置后启动Visual Studio。再次打开您的解决方案并重新加载当前卸载的项目。现在应该可以正常加载。

1rhkuytd

1rhkuytd4#

我的项目文件坏了,重新启动VS后,项目无法加载了。所以我创建了一个新的项目,并将PropertyGroup复制到坏的项目,然后它可以再次加载,没有错误。在我的WinUi 3项目的情况下,它是:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net6.0-windows10.0.19041.0</TargetFramework>
    <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
    <RootNamespace>TestUI</RootNamespace>
    <ApplicationManifest>app.manifest</ApplicationManifest>
    <Platforms>x86;x64;ARM64</Platforms>
    <RuntimeIdentifiers>win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers>
    <PublishProfile>win10-$(Platform).pubxml</PublishProfile>
    <UseWinUI>true</UseWinUI>
    <EnableMsixTooling>true</EnableMsixTooling>
  </PropertyGroup>
...
</Project>

相关问题