0

我在这里按照 nuget 许可证的说明进行操作。

我在 myproject.csproj 中使用以下代码:

 <PropertyGroup>
    <PackageLicenseFile>LICENSE.md</PackageLicenseFile>
  </PropertyGroup>

  <ItemGroup>
    <None Include="..\LICENSE.md" Pack="true" PackagePath=""/>
  </ItemGroup>

Nuget 包已正确构建。
没有与许可证相关的构建错误或警告。许可文件正确包含在包中。

当我检查包中的 nuspec 文件时,我发现了这个 xml 代码:

    <license type="file">LICENSE.md</license>
    <licenseUrl>https://aka.ms/deprecateLicenseUrl</licenseUrl>

在 MyGet 提要包中,它显示包许可证UnKnown并指向:' https://aka.ms/deprecateLicenseUrl '。

我的问题:

为什么显示包中包含的 nuspec 文件deprecateLicenseUrl

我错过了在 MyGet 中正确显示许可证的内容?

4

1 回答 1

1

为什么包中包含的 nuspec 文件显示 deprecateLicenseUrl?

2018 年 11 月左右,NuGet 4.9 中的 NuGet 客户端添加了嵌入式许可证,它对应于 Visual Studio 2017 15.9。在此之前,仅支持许可证 URL。这意味着 Visual Studio 2017 15.8 及更早版本,以及 Visual Studio 2015 及更早版本不支持嵌入式许可证,因此添加了指向文档的许可证 URL,以便它们显示一些内容,让客户了解为什么他们不能请参阅真实许可证和有关如何找到软件包的实际许可证的说明。同样,这意味着需要更改 NuGet 源以支持嵌入式许可证。NuGet 客户端团队与 nuget.org 团队合作,以确保他们同时支持它,但 NuGet 团队对其他 NuGet 提要实现没有直接影响。

我错过了在 MyGet 中正确显示许可证的内容?

您可以同时使用嵌入式许可证和自定义许可证 URL,但 NuGet 会在您打包时生成警告,并且如果您尝试发布到 nuget.org,您的包可能会被拒绝。否则你没有错过任何东西,听起来 MyGet 没有“跟上”对 NuGet 的更改。

于 2019-12-08T20:43:42.060 回答