[英]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.