如何通过 .csproj 文件要求接受 NuGet 包的许可证
Posted
技术标签:
【中文标题】如何通过 .csproj 文件要求接受 NuGet 包的许可证【英文标题】:How to require license acceptance for NuGet package through .csproj file 【发布时间】:2022-01-04 02:33:17 【问题描述】:我正在远离 .NET Core/5/6 NuGet 包的 .nuspec
文件,但我不知道如何在 .csproj
文件中设置等效的 <requireLicenseAcceptance>
元素。
我在包中包含一个名为 license.txt
的许可证文件,例如:
<ItemGroup>
<None Include="license.txt">
<Pack>True</Pack>
<PackagePath></PackagePath>
</None>
</ItemGroup>
然后我设置以下内容:
<PropertyGroup>
<PackageLicenseExpression></PackageLicenseExpression>
<PackageLicenseFile>license.txt</PackageLicenseFile>
</PropertyGroup>
这会在生成的.nuspec
文件中产生以下内容:
<license type="file">license.txt</license>
<licenseUrl>https://aka.ms/deprecateLicenseUrl</licenseUrl>
我希望<requireLicenseAcceptance>true</requireLicenseAcceptance>
也包含在生成的.nuspec
文件中,以便在安装包时弹出license.txt
的内容。
【问题讨论】:
【参考方案1】:哦。我没有意识到它可以通过项目属性进行设置,这样做揭示了我应该猜到的:元素名称几乎相同,只是前缀为“Package”。
.nuspec:
<RequireLicenseAcceptance>True</RequireLicenseAcceptance>
.csproj:
<PackageRequireLicenseAcceptance>True</PackageRequireLicenseAcceptance>
【讨论】:
以上是关于如何通过 .csproj 文件要求接受 NuGet 包的许可证的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio解决方案未保存,请先保存你的解决方案,然后再管理Nuget包
如何通过 NuGet 包共享源代码以用于 .NET Core 项目