首页 > 解决方案 > 为 IncludeAssets 创建具有特定默认值的 nuget 包

问题描述

我有一个要发布为 nuget 包的类库。它包含一些编译时必需的属性(分析器正常运行),但它不需要传递地包含,即<PrivateAssets>all</PrivateAssets>应该在包引用上启用。我知道这可以通过 来实现<DevelopmentDependency>true</DevelopmentDependency>,但是,也设置了<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>,这不是我需要的。我需要它的默认值是<IncludeAssets>compile; runtime</IncludeAssets>.

如何修改我的包以具有正确的默认值?

包定义的当前状态:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
    <DevelopmentDependency>true</DevelopmentDependency>
    <!--some more values like package id, version, etc.-->
  </PropertyGroup>
</Project>

在安装时,这变成

    <PackageReference Include="My.Package.Name" Version="1.0.0">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>

我希望它是

    <PackageReference Include="My.Package.Name" Version="1.0.0">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>compile; runtime</IncludeAssets>
    </PackageReference>

标签: c#nugetnuget-package

解决方案


推荐阅读