新版的nuget包 PackageLicense 这样写
最近编译类库项目的时候发现总是有个 licenseUrl 的警告,警告信息如下:
warning NU5125: The 'licenseUrl' element will be deprecated. Consider using the 'license' element instead
本文针对的是使用新版项目文件打包的方式,*.nuspec 官方文档详细,在此不多说。
新版的官方文档里基本没有提及,不过 Github 有个 samples 项目,可以参考。
新版项目文件的 nuget 包原来可以指定一个 PackageLicenseUrl
来指定这个包的 license, 现在不再支持了,现在有两种方式可以指定,一种是 LicenseExpression
一种是 LicenseFile
。
LicenseExpression
示例:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> <PackageLicenseExpression>MIT</PackageLicenseExpression> <!-- <PackageLicenseExpression>Apache-2.0</PackageLicenseExpression> --> </PropertyGroup> </Project>
更多license列表可以参考:https://spdx.org/licenses/
LicenseFile
增加 license file,具体的 license 写在 license file 内,并配置打包,然后配置 PackageLicenseFile
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFrameworks>netstandard2.0</TargetFrameworks> <PackageLicenseFile>License.txt</PackageLicenseFile> </PropertyGroup> <ItemGroup> <None Include="License.txt" Pack="true" Visible="false" PackagePath=""/> </ItemGroup> </Project>