You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止JetBrains Rider移除项目依赖的Private配置项?

问题:Rider升级NuGet包时丢失Private=False属性

我有一个包含依赖项的C#项目,已在.csproj文件中将依赖项的Private属性设置为False,避免把包复制到构建目录。但使用JetBrains Rider的NuGet包管理器升级包时,Private元素会被移除,请问有没有办法阻止该行为?

示例(将Apache.NMS从2.0.0升级到2.1.0)

升级前的.csproj引用:

<Reference Include="Apache.NMS, Version=2.0.0.0, Culture=neutral, PublicKeyToken=82756feee3957618, processorArchitecture=MSIL">
  <HintPath>..\packages\Apache.NMS.2.0.0\lib\net40\Apache.NMS.dll</HintPath>
  <Private>False</Private>
</Reference>

升级后的.csproj引用(Private元素被移除):

<Reference Include="Apache.NMS, Version=2.1.0.0, Culture=neutral, PublicKeyToken=82756feee3957618, processorArchitecture=MSIL">
  <HintPath>..\packages\Apache.NMS.2.1.0\lib\net40\Apache.NMS.dll</HintPath>
</Reference>

解决方案
  • 改用PackageReference格式(推荐)
    如果你的项目还在使用旧的packages.config,建议切换到PackageReference。这种格式支持直接在包引用中配置PrivateAssets属性,升级时NuGet(包括Rider的管理器)会保留这个设置:

    <PackageReference Include="Apache.NMS" Version="2.1.0">
      <PrivateAssets>none</PrivateAssets>
    </PackageReference>
    

    PrivateAssets=none的效果和原来的Private=False完全一致,不会在升级时被删除。

  • 全局统一配置Private属性(适用于packages.config)
    如果你不想切换格式,可以在.csproj中通过全局ItemGroup来锁定特定包的Private属性,避免单个引用被覆盖:

    <ItemGroup>
      <Reference Include="Apache.NMS, Version=2.1.0.0, Culture=neutral, PublicKeyToken=82756feee3957618, processorArchitecture=MSIL">
        <HintPath>..\packages\Apache.NMS.2.1.0\lib\net40\Apache.NMS.dll</HintPath>
        <Private>False</Private>
      </Reference>
    </ItemGroup>
    

    也可以用条件匹配批量设置:

    <ItemGroup>
      <Reference Condition="'@(Reference->Metadata('Include'))' == 'Apache.NMS'">
        <Private>False</Private>
      </Reference>
    </ItemGroup>
    
  • 调整Rider的NuGet设置
    打开Rider的设置界面(File > Settings > Build, Execution, Deployment > NuGet),检查是否有“保留现有引用属性”相关的选项。部分版本的Rider支持在升级包时保留自定义的引用属性,开启这个选项就能防止Private元素被移除。


内容的提问来源于stack exchange,提问作者reyymo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 15:57:48