为 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', '')) >= 4.6 ">RyuJIT</DefineConstants>
</PropertyGroup>
但它不起作用:没有定义常量,因此总是为任何目标框架编译第二行。我做错了什么?如何在构建之间共享此常量?
用Choose
节点求解。此外,现在我可以引用.Net 4.6-only
dll。
<Choose>
<When Condition=" $(TargetFrameworkVersion.Replace('v', '')) >= 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
,因为它更合适