首页 > 解决方案 > nuget中的条件依赖

问题描述

我有一个我想通过 nuget 交付的工具。我对它不是很熟悉,但到目前为止我读到的是你可以用条件定义依赖关系。条件也可以是环境变量吗?

我在这里找到了这个:

<ItemGroup>
    <!-- ... -->
    <PackageReference Include="Newtonsoft.Json" Version="9.0.1" Condition="'$(TargetFramework)' == 'net452'" />
    <!-- ... -->
</ItemGroup>

在上面的示例中,还有什么其他“变量” TargetFramework

还有两个包含我需要的依赖项,我怎么能说我需要其中一个而不是两个?如果还没有安装任何东西,我如何定义我想要的?

标签: dependenciesnuget

解决方案


是的,您可以在 Condition 中使用环境变量:

Condition仅当属性没有值时,才使用属性上的属性来设置值。例如,以下代码 ToolsPath仅在ToolsPath未设置环境变量时将属性设置为 c:\tools:

<ToolsPath Condition="'$(TOOLSPATH)' == ''">c:\tools</ToolsPath>

资料来源:如何:在构建中使用环境变量

可以在此处找到所有 MSBuild 内置属性的列表:https ://stackoverflow.com/a/1453023/7225096


推荐阅读