过去几天我在编译.NET标准/核心项目时遇到了警告:
NuGet.Build.Tasks.Pack.targets(202,5):[NU5125]'licenseUrl'元素将被弃用.请考虑使用'license'元素.
为了解决这个问题,我改用了<PackageLicenseFile>...</PackageLicenseFile>而不是<PackageLicenseUrl>...</PackageLicenseUrl>.
但是,为了实现这一点,我必须将许可证文件添加到我的软件包中(当然),但它会被添加到content和contentFiles目录中,这意味着使用此软件包的项目会将许可文件添加到其中.
有没有办法嵌入许可证文件,以便PackageLicenseFile正常工作,而无需将许可证文件添加到使用该软件包的项目?
这是我添加到.csproj文件中以嵌入许可证文件的部分:
<ItemGroup>
<Content Include="..\LICENSE" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
输出包结构:
_rels
package
lib
contentFiles
+- any
+- netstandard2.0
+- LICENSE
content
+- LICENSE
Run Code Online (Sandbox Code Playgroud)
例如,我可以将它添加到包内的单独文件夹中content吗?
使用包打包许可证文件的推荐方法是
<PropertyGroup>
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile>
</PropertyGroup>
<ItemGroup>
<None Include="LICENSE.txt" Pack="true" PackagePath="$(PackageLicenseFile)"/>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
但现在PackageLicenseExpression也可以用作您在评论中提到的许可证文件/URL 的替代方案。
有关更多详细信息,请参阅nupkg 中NuGet 的 wiki 条目Packaging License。
| 归档时间: |
|
| 查看次数: |
545 次 |
| 最近记录: |