Nuget.exe包警告:未指定说明。使用';说明';
我试图通过命令行创建一个NuGet包,但我似乎不知道如何设置描述、作者、标题、摘要、发行说明和所有者。软件包成功创建它只是给了我以下警告:Nuget.exe包警告:未指定说明。使用';说明';,nuget,Nuget,我试图通过命令行创建一个NuGet包,但我似乎不知道如何设置描述、作者、标题、摘要、发行说明和所有者。软件包成功创建它只是给了我以下警告: WARNING: Description was not specified. Using 'Description'. WARNING: Author was not specified. Using 'User'. 这是我的命令: NuGet.exe pack "<MyProjectPath>.csproj" -OutputDirector
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 pack.csproj“-OutputDirectory”“-Properties Configuration=release;Description=“MyDescription”;作者=“MeMeMe…MeToo”;Title=“MyTitle”;Summary=“MySummary”;releaseNotes=“MyChanges;”所有者=“MyCompany”
我不确定这是否重要,但我使用的是从Visual Studio Team Services下载的“CredentialProviderBundle.zip”文件中得到的NuGet.exe。该命令实际上几乎没有问题 如果没有一些先决条件,就不可能做问题所要求的事情
<?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$
$Title$
$Authors$
$Owners$
假的
$Desc$
美元摘要$
$ReleaseNotes$
版权所有©2016
Id和版本不需要有标记,因为它们将自动被覆盖,但这不会造成伤害
下面是您应该与上面指定的*.nuspec文件一起使用的命令行:
NuGet.exe pack "<MyProjectPath>.csproj" -OutputDirectory "<MyOutputDirectory>" -Properties Configuration=release;Desc="MyDescription";Authors="MeMeMe...MeToo";Title="MyTitle";Summary="MySummary";ReleaseNotes="MyChanges;"Owners="MyCompany"
NuGet.exe pack.csproj“-OutputDirectory”“-Properties Configuration=release;Desc=“MyDescription”;作者=“MeMeMe…MeToo”;Title=“MyTitle”;Summary=“MySummary”;ReleaseNotes=“MyChanges;”所有者=“MyCompany”
我知道这是一个相当古老的问题,但今天我已经为这个问题挣扎了一段时间。我在跑步
nuget pack SomeRandom.csproj-Properties Configuration=Release
我得到的是“需要说明”错误
最后,我删除了nuspec文件,并通过运行
numget spec SomeRandom.csproj
然后当我运行nuget pack时,它运行良好。奇怪,但是可以帮助某人。只是为了补充一下,因为这两个都不能完全帮助我,所以运行命令
nuget pack
这将在解决方案的基础上为您创建一个Package.nuspec
文件。完成此操作后,必须将文件重命名为NameOfProject.nuspec
。因此,如果我的项目名为GameEngine.csproj
,那么我将把nuspec
文件重命名为GameEngine.csproj
。然后,将此文件移动到.csproj所在的文件夹中(不是debug/release文件夹,只是包含所有手写代码文件的基本文件夹)。然后继续跑
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/
希望在这些答案中,您能找到答案:)如果这对其他人有帮助,那么获取“需要说明”错误的一个愚蠢原因是:自从我在AssemblyInfo中添加了说明后,我还没有重建我的项目 我已经在我的项目目录中用
$description$
标记定义了一个nuspec文件。当我跑的时候
nuget pack MyProject.csproj
尽管我的AssemblyInfo包含[assembly:AssemblyDescription(“描述”)]
,但我看到了一个“需要说明”错误
。。。因为尽管您打包了
.csproj
,但实际上是由Nuget打包的最新版本。哦。对我来说,解锁nuget.exe就成功了。从NuGet 5.7开始
是否在AssemblyInfo.cs文件中指定AssemblyCompany和AssemblyDescription值?如果是这样的话,您能用新项目重现这个问题吗?我创建了一个新的类库项目。我根本没有修改AssemblyInfo.cs文件。AssemblyCompany和AssemblyDescription都是空字符串。同样的问题。然后我指定了AssemblyCompany和AssemblyDescription,它们现在填充在nuspec文件中,没有警告,但它们填充的是AssemblyInfo.cs中的值,而不是我在命令行中指定的值。此外,summary和releaseNotes未添加到nuspec文件中。这是expect行为。如果要在-properties中指定值,需要首先生成.nuspec文件(nugget spec),然后创建包。您可以为nuspec文件中的releaseNotes(替换默认的releaseNotes部分)$releaseNotes$添加一个新的令牌。但是如果您不想使用nuspec文件呢?我更喜欢从csproj打包,我使用的一些版本的nuget会从AssemblyInfo中获取描述,但其他版本则不会。我更喜欢从csproj打包,因为这样我就不必更新nuspec,当您更改依赖项版本时,nuspec会变得非常乏味。从csproj打包只是自动更新依赖项版本。要创建
.nuspec
文件,答案中的第一个命令应该是nuget spec
,而不是nuget pack
。此外,为了解决缺少的作者消息,可以使用以下程序集属性:[程序集:组装公司(“作者”)]
。在运行之前设置AssemblyDescription并重新生成项目