Ho un progetto con un po 'di codice. Voglio determinare se viene utilizzato RyuJIT e, in tal caso, scrivere RyuJIT
altrimenti LegacyJIT
.
Scrivo io:
#if RuyJIT
Console.WriteLine("RyuJIT");
#else
Console.WriteLine("LegacyJIT");
#endif
poi sto cercando di definire una costante. Quindi apro la mia .csproj
nel blocco note e scrivi quanto segue:
<PropertyGroup>
<DefineConstants Condition=" $(TargetFrameworkVersion.Replace("v", "")) >= 4.6 ">RyuJIT</DefineConstants>
</PropertyGroup>
Ma non funziona: la costante non è definita, quindi la seconda riga viene sempre compilata per qualsiasi framework di destinazione. Cosa sto facendo di sbagliato? Come posso condividere questa costante tra build?
risposte:
0 per risposta № 1Risolto con Choose
nodo. Inoltre, ora sono in grado di fare riferimento .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>..packagesSystem.Numerics.Vectors.4.1.0libnet46System.Numerics.Vectors.dll</HintPath>
<Private>True</Private>
</Reference>
</ItemGroup>
<PropertyGroup>
<DefineConstants>SIMD</DefineConstants>
</PropertyGroup>
</When>
</Choose>
Ho sostituito RyuJIT
con SIMD
perché è più adatto