C# 如何使用Asp.net 5(dnu包)指定Nuget包Id

C# 如何使用Asp.net 5(dnu包)指定Nuget包Id,c#,nuget,asp.net-core,C#,Nuget,Asp.net Core,是否可以在project.json文件中指定一个设置,使dnu pack命令生成一个名称与打包的项目名称不同的NuGet包 基本上,出于发布的原因,我们不得不缩短项目名称,并希望使包名称成为完全限定的名称空间 我相信这相当于在属性/AssemblyInfo.cs文件中的.nuspec中设置Id字段,您可以覆盖.nuspec中的一些属性,这实际上会强制它从AssemblyInfo.cs导入令牌 在本例中,您感兴趣的是AssemblyTitleCLR属性: [assembly: AssemblyTi

是否可以在
project.json
文件中指定一个设置,使
dnu pack
命令生成一个名称与打包的项目名称不同的NuGet包

基本上,出于发布的原因,我们不得不缩短项目名称,并希望使包名称成为完全限定的名称空间


我相信这相当于在
属性/AssemblyInfo.cs
文件中的
.nuspec
中设置Id字段,您可以覆盖
.nuspec
中的一些属性,这实际上会强制它从
AssemblyInfo.cs
导入令牌

在本例中,您感兴趣的是
AssemblyTitle
CLR属性:

[assembly: AssemblyTitle("ShortPackageName")]
...
然后在生成.nuspec后,它应该是这样的,带有一个占位符:

<metadata>
  <id>$id$</id>

那么,您是否尝试将
id
节点更改为您想要的名称?我可以,但我希望它更加自动化。我要么在生成包后编写一些定制的东西来完成这项工作,要么在每次发布之前手动完成。我只是感到惊讶的是,唯一的选择是使用项目名称而不能覆盖它。我认为这没有帮助,因为据我所知,ASP.NET 5“dnu pack”似乎不尊重nuspec文件。我还缺少什么吗?
nuget-pack
dnu-pack
之间有什么区别?前者应该读取您的
.nuspec
文件。进一步的实验发现,包ID似乎是由项目所在的文件夹名决定的。我们利用了它,它允许我们使用
dnu-pack
命令,正如Microsoft为ASP.NET 5准备的那样。
"description": "ShortPackageName",