使用NuGet Pack时是否可以在没有nuspec文件的情况下指定包名?

我正在尝试为.csproj文件创建一个nuget包,但希望包名不同于csroj文件(默认情况下是这样),我不想指定.nuspec文件。 有办法做到这一点吗? 我只能在命令行选项上看到版本名称覆盖选项,而不是包名覆盖选项。

我在TeamCity中这样做,但这是重点。 我想我需要将其他参数传递给NuGet pack命令?

谢谢,

Nuget命令行不提供直接更改名称的任何选项。 http://docs.nuget.org/docs/reference/command-line-reference#Pack_Command

如果您想要区分项目和nuget包名称,则必须准备和编辑自定义nuspec文件。 您也可以在使用例如NuGetPackage Explorer创建包后手动执行此操作。

Nuget的Properties参数就是你要找的。

如果.nuspec文件使用占位符,则可以通过Properties参数为其传递值。 来自nuget文档 :

属性。 指定由分号分隔的标记=值对的列表,其中.nuspec文件中每次出现的$ token $都将替换为给定值。 值可以是引号中的字符串。

所以nuget.exe -Properties id=someProject将使用“someProject”来表示$id$任何出现。

从NuGet 4.0开始,现在可以在.csproj文件中指定包名称和其他元数据作为属性。 有关更多信息,请参阅https://docs.microsoft.com/en-us/nuget/guides/create-net-standard-packages-vs2017 。