/ / Definujte podmienenú konštantu pre všetky zostavy vo Visual Studio - c #, Visual-Studio, msbuild, direktíva preprocesora, msbuild-propertygroup

Definujte podmienenú konštantu pre všetky zostavy v aplikácii Visual Studio - c #, visual-studio, msbuild, preprocessor-directive, msbuild-propertygroup

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", "")) &gt;= 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ď č. 1

Vyriešené s Choose uzol. Okrem toho teraz môžem odkazovať .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>..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