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

如何配置NuGet包安装时自动设置指定PackageReference属性?

实现NuGet包安装时自动配置指定资产属性

可以通过以下两种方式实现你的需求,让用户安装DevKit包后自动添加<PrivateAssets>all</PrivateAssets>和<IncludeAssets>compile</IncludeAssets>属性:

方法一:直接在DevKit项目的csproj中配置默认资产

在DevKit项目的<PropertyGroup>节点下添加以下配置:

<PackageIncludeAssets>compile</PackageIncludeAssets>
<PackagePrivateAssets>all</PackagePrivateAssets>

这两个属性的作用是:

  • PackageIncludeAssets:定义NuGet包被安装时默认的IncludeAssets值
  • PackagePrivateAssets:定义NuGet包被安装时默认的PrivateAssets值

配置完成后,用户安装你的DevKit包时,自动生成的PackageReference会自动带上你需要的属性,效果和手动添加完全一致:

<PackageReference Include="Tum4ik.JustClipboardManager.PluginDevKit" Version="3.2.24181.11">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>compile</IncludeAssets>
</PackageReference>

方法二:通过NuBuild props文件强制更新属性

如果需要更灵活的控制(比如兼容不同场景),可以在DevKit包中添加一个build props文件:

  1. 在DevKit项目根目录创建build文件夹,里面新建Tum4ik.JustClipboardManager.PluginDevKit.props文件,内容如下:
<Project>
  <ItemGroup>
    <PackageReference Update="Tum4ik.JustClipboardManager.PluginDevKit">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>compile</IncludeAssets>
    </PackageReference>
  </ItemGroup>
</Project>
  1. 在DevKit的csproj中添加配置,确保这个props文件被打包到NuGet包的build目录:
<ItemGroup>
  <None Include="build\Tum4ik.JustClipboardManager.PluginDevKit.props" Pack="true" PackagePath="build" />
</ItemGroup>

用户安装包后,这个props文件会自动导入到他们的项目中,强制更新该PackageReference的资产属性。

这两种方法都能满足你的需求——开发阶段可以正常调用DevKit的API,分发插件时不会将DevKit的DLL包含在分发包中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 20:42:32