如何通过 .csproj 文件要求接受 NuGet 包的许可

How to require license acceptance for NuGet package through .csproj file

我正在远离 .NET Core/5/6 NuGet 包的 .nuspec 文件,但我不知道如何设置 [=15] 中 <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 的内容。

呵呵。我没有意识到它可以通过项目属性设置,这样做揭示了我 应该 猜到的:元素名称几乎相同,只是前缀为“Package”。

.nuspec:

<RequireLicenseAcceptance>True</RequireLicenseAcceptance>

.csproj:

<PackageRequireLicenseAcceptance>True</PackageRequireLicenseAcceptance>