[英]Nuget.exe pack WARNING: Description was not specified. Using 'Description'
我正在尝试通过命令行创建 NuGet Package,但我似乎无法弄清楚如何设置描述、作者、标题、摘要、发布说明和所有者。 package 成功创建它只是给了我这个警告:
WARNING: Description was not specified. Using 'Description'.
WARNING: Author was not specified. Using 'User'.
这是我的命令:
NuGet.exe pack "<MyProjectPath>.csproj" -OutputDirectory "<MyOutputDirectory>" -Properties Configuration=release;Description="MyDescription";Authors="MeMeMe...MeToo";Title="MyTitle";Summary="MySummary";releaseNotes="MyChanges;"Owners="MyCompany"
我不确定这是否重要,但我使用的是 NuGet.exe,它来自从 Visual Studio Team Services 下载的“CredentialProviderBundle.zip”文件。
该命令实际上几乎没有任何问题。
如果没有一些先决条件,就不可能完成问题的要求。
以下是此特定示例的 *.nuspec 文件示例:
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>$Id$</id>
<version>$Version$</version>
<title>$Title$</title>
<authors>$Authors$</authors>
<owners>$Owners$</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>$Desc$</description>
<summary>$Summary$</summary>
<releaseNotes>$ReleaseNotes$</releaseNotes>
<copyright>Copyright © 2016</copyright>
<dependencies />
</metadata>
</package>
Id 和 Version 不需要有令牌,因为无论哪种方式它们都会自动被覆盖,但这不会造成伤害。
这是您应该与上面指定的 *.nuspec 文件一起使用的命令行:
NuGet.exe pack "<MyProjectPath>.csproj" -OutputDirectory "<MyOutputDirectory>" -Properties Configuration=release;Desc="MyDescription";Authors="MeMeMe...MeToo";Title="MyTitle";Summary="MySummary";ReleaseNotes="MyChanges;"Owners="MyCompany"
万一这对其他人有帮助,这是导致“需要描述”错误的愚蠢原因:自从我向我的 AssemblyInfo 添加描述以来,我没有重建我的项目。
我在我的项目目录中定义了一个带有<description>$description$</description>
标记的 nuspec 文件。 当我跑
nuget pack MyProject.csproj
我看到了“需要描述”错误,即使我的 AssemblyInfo 包含[assembly: AssemblyDescription("A DESCRIPTION.")]
...
...因为尽管您打包了.csproj
,但实际上是 Nuget 打包的是您的最新版本。 哦。
我知道这已经很老了,但是今天我一直在为这个问题苦苦挣扎。 我在跑步
nuget pack SomeRandom.csproj -Properties Configuration=Release
我收到“需要描述”错误。
我最终删除了 nuspec 文件并让 nuget 通过运行来创建一个新文件
nuget spec SomeRandom.csproj
然后当我运行 nuget pack 时它运行良好。 奇怪,但可以帮助某人。
对我来说,解除阻止 nuget.exe 成功了。 从 NuGet 5.7 开始,这似乎是必要的。
对于类似但相关的问题:
通过 .NET Core 项目的 .csproj 文件设置这些属性时,可以使用以下方法避免警告:
dotnet pack
代替
nuget pack
只是添加到这篇文章,因为这些都没有完全帮助我,运行命令
nuget pack
这将在您的解决方案的基础上为您创建一个Package.nuspec
文件。 完成此操作后,您必须将文件重命名为NameOfProject.nuspec
。 因此,如果我的项目名为GameEngine.csproj
那么我会将我的nuspec
文件重命名为GameEnginer.csproj
。 然后,将此文件移动到 .csproj 所在的同一文件夹中(不是调试/发布文件夹,只是包含所有手写代码文件的基本文件夹)。 然后继续运行
nuget pack RelativePathOfNameOfProject.csproj
所以如果我想点击我的GameEngine.csproj
命令看起来像
nuget pack .\GameEngine\GameEngine.csproj
由于我的文件夹结构类似于:
root/
├── Folder1/
├── Folder2/
├── GameEngine/
│ ├── bin/
│ ├── obj/
│ ├── Properties/
│ ├── Class1.cs
│ ├── Class2.cs
│ ├── GameEngine.nuspec
│ └── GameEngine.csproj
├── packages/
└── GameEngine.sln/
希望在这些答案之间,您可以弄清楚:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.