C# 使用NuGet Pack时,是否可以在不使用nuspec文件的情况下指定包名?
我正在尝试为.csproj文件创建一个nuget包,但希望包名与csroj文件不同(默认情况下是这样),并且不希望指定.nuspec文件。有没有办法做到这一点?我只能在命令行选项上看到版本名覆盖选项,而不能看到包名覆盖选项 我在TeamCity这样做,但这不是重点。我想我需要将其他参数传递给NuGet pack命令C# 使用NuGet Pack时,是否可以在不使用nuspec文件的情况下指定包名?,c#,teamcity,nuget,C#,Teamcity,Nuget,我正在尝试为.csproj文件创建一个nuget包,但希望包名与csroj文件不同(默认情况下是这样),并且不希望指定.nuspec文件。有没有办法做到这一点?我只能在命令行选项上看到版本名覆盖选项,而不能看到包名覆盖选项 我在TeamCity这样做,但这不是重点。我想我需要将其他参数传递给NuGet pack命令 谢谢,Nuget命令行不提供任何直接更改名称的选项。 如果您想要不同的项目和nuget包名称,您必须准备和编辑自定义nuspec文件。您也可以在创建包后使用NuGetPackage
谢谢,Nuget命令行不提供任何直接更改名称的选项。
如果您想要不同的项目和nuget包名称,您必须准备和编辑自定义nuspec文件。您也可以在创建包后使用NuGetPackage Explorer手动执行此操作。从NuGet 4.0开始,现在可以将包名和其他元数据指定为.csproj文件中的属性。有关详细信息,请参阅。Nuget的属性参数就是您要查找的参数 如果
.nuspec
文件使用占位符,则可以通过Properties参数为其传递值。从:
财产。指定由分号分隔的token=值对列表,其中.nuspec文件中出现的每个$token$都将替换为给定值。值可以是带引号的字符串
因此,nuget.exe-Properties id=someProject
将使用“someProject”处理$id$
如果您有一个A.nuspec,您可以在其中指定如下自定义包名(否则包名将与项目名相同,即A),则仍然可以使用“nuget pack A.csproj”:
定制
我想我可能不得不求助于使用nuspec文件:-(这仅适用于.NET标准。我目前不知道有人使用.NET标准,但无论如何,这是一个团队城市问题,而不是Visual Studio,项目类型特定。
<?xml version="1.0"?>
<package >
<metadata>
<id>Custom A</id>
</metadata>
</package>