上传私有商业NuGet包时,PackageLicenseExpression有效值咨询
私有商业NuGet包许可证表达式配置方案
NuGet的<PackageLicenseExpression>要求使用SPDX认证的许可证标识符,"Commercial"不在SPDX的标准列表中,因此会触发无效警告。针对私有商业包,有两种合规的配置方式:
方案一:使用SPDX标准专有标识符
直接使用PROPRIETARY这个SPDX认可的标识符,它专门用于标记闭源商业软件,配置如下:
<PackageLicenseExpression>PROPRIETARY</PackageLicenseExpression>
该配置可直接通过NuGet的校验,消除构建警告。
方案二:自定义许可证文件(如需详细条款)
如果你的商业包有专属的许可条款,可同时指定许可证文件和表达式:
- 将自定义许可证文件(如
LICENSE.txt)放入项目根目录,在csproj中添加配置:
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile> <PackageLicenseExpression>PROPRIETARY</PackageLicenseExpression>
- 确保许可证文件被纳入打包范围,在csproj的
<ItemGroup>中添加:
<ItemGroup> <None Include="LICENSE.txt" Pack="true" PackagePath="\" /> </ItemGroup>
内容的提问来源于stack exchange,提问作者lonix
相关产品推荐
相关产品推荐

