根据NuGet PackageReference版本定义C#预处理程序常量

时间:2019-08-23 22:42:23

标签: nuget csproj packagereference

有人知道如何基于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的任何想法?

0 个答案:

没有答案