有人知道如何基于NuGet PackageReference定义预处理程序常量吗?
通过NuGet访问的库在主要版本之间具有重大更改,因此我们需要根据软件包参考版本来修改代码。
我们的初始方法是使用<Choose><When Condition...>
构造来设置预处理器常量,然后在我们的代码中使用#if来适当地修改代码。例如,在这里为了测试概念,我们定义了是否安装了System.Runtime软件包的常量。
<ItemGroup>
<PackageReference Include="System.Runtime" Version="4.3.1" />
</ItemGroup>
<Choose>
<When Condition=" '$(PackageReference).Identity'=='System.Runtime' ">
<PropertyGroup>
<DefineConstants>HDN</DefineConstants>
</PropertyGroup>
</When>
</Choose>
但是,条件始终解析为false,并且未定义预处理程序常量。关于如何测试PackageReference的任何想法?