[英]Unable to pack a NuGet package using dotnet CLI and nuspec file
[英]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.