打包带有长描述的项目,在 VS2017 中出现缺少摘要文本的警告

Packaging project with long description, warning about missing summary text in VS2017

创建一个具有长 <Description> 值的 NuGet 包,发出以下警告。

... \NuGet.Build.Tasks.Pack.targets(204,5): warning : Issue found with package 'ClassLibrary1'.
... \NuGet.Build.Tasks.Pack\build\NuGet.Build.Tasks.Pack.targets(204,5): warning : Issue: Consider providing Summary text.
... \NuGet.Build.Tasks.Pack\build\NuGet.Build.Tasks.Pack.targets(204,5): warning : Description: The Description text is long but the Summary text is empty. This means the Description text will be truncated in the 'Manage NuGet Packages' dialog.
... \NuGet.Build.Tasks.Pack\build\NuGet.Build.Tasks.Pack.targets(204,5): warning : Solution: Provide a brief summary of the package in the Summary field.

但是项目 属性 页面上没有 Summary 字段...

如何设置Summary字段?

How to set Summary field?

要解决这些警告,您可以通过在 .csproj 文件中将 NoPackageAnalysis 属性 设置为 true 来禁用这些警告:

<NoPackageAnalysis>true</NoPackageAnalysis>

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
    <NoPackageAnalysis>true</NoPackageAnalysis>
  </PropertyGroup>

</Project>

但是,我想分享更多关于这个问题的信息。根据 .nuspec reference:

description A long description of the package for UI display.

summary A short description of the package for UI display. If omitted, a truncated version of description is used.

正如summary的描述“If omitted, a truncated version of description is used”,所以如果我们不为summary设置值,则使用截断版本的description在 Visual Studio UI 中,描述太长,它会折叠以适应 space:

要解决此警告,我们可以在 .nuspec 文件中添加 <summary>Value</summary>

<?xml version="1.0"?>
<package >
  <metadata>
    <id>MyModels</id>
    <version>1.0.0</version>
    <authors>Admin</authors>
    <owners>Admin</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <summary>Package description for summary</summary>
    <description>This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.This is a long description.</description>
    <releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
    <copyright>Copyright 2018</copyright>
    <tags>Tag1 Tag2</tags>
  </metadata>

  <files>
    <file src="bin\Debug\netcoreapp2.0\MyModels.dll" target="lib\netcoreapp2.0" />
    <file src="bin\Debug\netcoreapp2.0\MyModels.xml" target="lib\netcoreapp2.0" />
  </files>
</package>

然后你打包这个 .nupsec,UI 的包的简短描述 <summary>Package description for summary</summary> 显示:

但是

summary is deprecated for NET Core projects and there are no plans of bringing it back currently.

这就是项目 属性 页面上没有摘要字段的原因。 NuGet 团队将关闭 this bug 将删除 netcore 项目的此警告。

要跟踪此问题,请检查以下内容link:

https://github.com/NuGet/Home/issues/5688

希望对您有所帮助。