为 Visual Studio 中的所有生成定义一个条件常量

本文关键字:一个 常量 条件 定义 Studio Visual | 更新日期: 2023-09-27 18:36:49

我有一个带有一些代码的项目。我想确定是否使用了 RyuJIT,如果是这样,那么写RyuJIT否则LegacyJIT.

我写道:

#if RuyJIT
            Console.WriteLine("RyuJIT");
#else
            Console.WriteLine("LegacyJIT");
#endif

然后我正在尝试定义一个常量。所以我在记事本中打开我的.csproj并写下以下内容:

  <PropertyGroup>
    <DefineConstants Condition=" $(TargetFrameworkVersion.Replace('v', '')) &gt;= 4.6 ">RyuJIT</DefineConstants>
  </PropertyGroup>

但它不起作用:没有定义常量,因此总是为任何目标框架编译第二行。我做错了什么?如何在构建之间共享此常量?

为 Visual Studio 中的所有生成定义一个条件常量

Choose节点求解。此外,现在我可以引用.Net 4.6-only dll。

  <Choose>
    <When Condition=" $(TargetFrameworkVersion.Replace('v', '')) &gt;= 4.6 ">
      <ItemGroup>
        <Reference Include="System.Numerics" />
        <Reference Include="System.Numerics.Vectors, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
          <HintPath>..'packages'System.Numerics.Vectors.4.1.0'lib'net46'System.Numerics.Vectors.dll</HintPath>
          <Private>True</Private>
        </Reference>
      </ItemGroup>
      <PropertyGroup>
        <DefineConstants>SIMD</DefineConstants>
      </PropertyGroup>
    </When>
  </Choose>

我用SIMD替换了RyuJIT,因为它更合适