Mám projekt s nejakým kódom. Chcem zistiť, či sa používa RyuJIT a ak áno, potom napíš RyuJIT
inak LegacyJIT
.
Ja píšem:
#if RuyJIT
Console.WriteLine("RyuJIT");
#else
Console.WriteLine("LegacyJIT");
#endif
potom sa snažím definovať konštantu .csproj
v poznámkovom bloku a napíšte nasledujúce:
<PropertyGroup>
<DefineConstants Condition=" $(TargetFrameworkVersion.Replace("v", "")) >= 4.6 ">RyuJIT</DefineConstants>
</PropertyGroup>
Ale nefunguje: konštanta nie je definovaná, takže druhý riadok je vždy zostavený pre akýkoľvek cieľový rámec. Čo robím zle? Ako môžem zdieľať túto konštantu medzi zostavami?
odpovede:
0 pre odpoveď č. 1Vyriešené s Choose
uzol. Okrem toho teraz môžem odkazovať .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>
Nahradil som RyuJIT
s SIMD
pretože je to vhodnejšie