我遵循了nuget许可证here的指示。
我在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 feed数据包中,它将软件包许可证显示为UnKnown
,并指向:'https://aka.ms/deprecateLicenseUrl'。
我的问题:
为什么包装中包含的nuspec文件显示deprecateLicenseUrl
?
我错过了如何在MyGet中正确显示许可证?
答案 0 :(得分: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提要以支持嵌入式licenes。 NuGet客户团队与nuget.org团队合作,以确保他们都同时支持它,但是NuGet团队没有其他NuGet feed实施的直接影响。如果MyGet尚未更新为支持嵌入式许可证,则可以使用lincense url向后兼容,以旧版Visual Studio的用户为目标。
我错过了如何在MyGet中正确显示许可证?
您可以同时使用嵌入式许可证和自定义许可证URL,但是打包时NuGet会生成警告,如果尝试发布到nuget.org,则可能会拒绝您的软件包。否则,您将不会错过任何东西,听起来MyGet并没有对NuGet进行任何更改。