2

У меня есть проект с некоторым кодом. Я хочу определить, используется ли RyuJIT, и если да, тогда напишите RyuJIT иначе LegacyJIT.Определить условную константу для всех сборок в Visual Studio

Я пишу:

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

я пытаюсь определить константу. Так я открываю .csproj в блокноте и написать следующее:

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

Но это не работает: константа не определена таким образом, вторая линия всегда компилируются для любой целевой структуры. Что я делаю не так? Как я могу поделиться этой константой между сборками?

+0

Очень широкое слово «не работает» :(:(Попробуйте добавить константу, когда она _not_ RyuJIT – Jasper

ответ

0

Решено с Choose узел. Кроме того, теперь я могу ссылаться на dlls .Net 4.6-only.

<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> 

я заменил RyuJIT с SIMD, потому что это больше подходит

 Смежные вопросы

  • Нет связанных вопросов^_^