过去几天,我在编译.NET Standard / Core项目时收到警告:
NuGet.Build.Tasks.Pack.targets(202,5):[NU5125]'licenseUrl'元素将被弃用。考虑改用“ license”元素。
要解决此问题,我改用<PackageLicenseFile>...</PackageLicenseFile>
而不是<PackageLicenseUrl>...</PackageLicenseUrl>
。
但是,为了使其正常工作,我必须(自然地)将许可证文件添加到我的软件包中,但是它被添加到content
和contentFiles
目录中,这意味着一个项目使用此软件包将许可证文件添加到其中。
是否有一种方法可以嵌入许可证文件,以使PackageLicenseFile
正常工作,而无需使用软件包将许可证文件添加到项目中?
这是我添加到.csproj文件中的部分,以嵌入许可证文件:
<ItemGroup>
<Content Include="..\LICENSE" />
</ItemGroup>
输出包的结构:
_rels
package
lib
contentFiles
+- any
+- netstandard2.0
+- LICENSE
content
+- LICENSE
例如,我可以将其添加到软件包中除content
之外的单独文件夹中吗?
答案 0 :(得分:1)
与软件包一起打包许可证文件的推荐方法是
<PropertyGroup>
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile>
</PropertyGroup>
<ItemGroup>
<None Include="LICENSE.txt" Pack="true" PackagePath="$(PackageLicenseFile)"/>
</ItemGroup>
但是现在还有PackageLicenseExpression
可以用作您在评论中提到的许可文件/ URL的替代。
有关更多详细信息,请参见NuGet的Wiki条目Packaging License within the nupkg。