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



我将不再使用.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的内容。

Doh。我没有意识到它可以通过项目属性设置,这样做揭示了我应该猜测的内容:元素名称几乎相同,只是前缀为"包装";。

.nuspec:

<RequireLicenseAcceptance>True</RequireLicenseAcceptance>

.csproj:

<PackageRequireLicenseAcceptance>True</PackageRequireLicenseAcceptance>

最新更新