繁体   English   中英

使用NuGet Pack时,是否可以指定没有nuspec文件的软件包名称?

[英]When using NuGet Pack is it possible to specify the package name without a nuspec file?

我正在尝试为.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 docs

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

因此nuget.exe -Properties id=someProject将在出现$id$使用“ someProject”。

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

如果您有一个A.nuspec,您仍可以使用“ nuget pack A.csproj”,在其中您可以指定如下所示的自定义包名称(否则,包名称将与项目名称相同,即A):

<?xml version="1.0"?>
<package >
  <metadata>
    <id>Custom A</id>
  </metadata>
</package>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM