Visual studio VS2017中是否有包id和版本号的变量?(调用Nuget Push的外部工具菜单项)

Visual studio VS2017中是否有包id和版本号的变量?(调用Nuget Push的外部工具菜单项),visual-studio,visual-studio-2017,nuget,Visual Studio,Visual Studio 2017,Nuget,我想在VS2017中添加一个外部“Nuget Push”命令,但是对于Nuget参数列表,我能得到的最接近的命令是: push $(ProjectDir)bin\$(Configuration)\*.nupkg -Source "xxx" -ApiKey xxx (其中Source和ApiKey是我们的私有值) 这(某种程度上)是可行的,但如果我可以指定$(PackageId)。$(PackageVersion).nupkg而不是*.nupkg,它会更干净。是否存在可用于构建确切文件名的合适变

我想在VS2017中添加一个外部“Nuget Push”命令,但是对于
Nuget
参数列表,我能得到的最接近的命令是:

push $(ProjectDir)bin\$(Configuration)\*.nupkg -Source "xxx" -ApiKey xxx
(其中Source和ApiKey是我们的私有值)

这(某种程度上)是可行的,但如果我可以指定
$(PackageId)。$(PackageVersion).nupkg而不是
*.nupkg,它会更干净。是否存在可用于构建确切文件名的合适变量

更新:

这是外部工具的定义,而不是
。使用以下设置:

一个示例结果是:

File does not exist (C:\TFS\DefaultCollection\Forge\Forge.POCO\bin\Debug\..nupkg).

没有,我以前已经为此打开了一个应用程序,但我意识到可能用户太少,无法实现此功能,因为使用
$(PackageId)
$(PackageVersion)
在大多数情况下都有效

NuGet团队成员建议使用
NuGetPackOutput
项之一,其中包含创建的所有.nuspec和.nupkg文件:

<Target Name="Foo" DependsOnTargets="Pack">
  <Message Importance="high" Text="NuGetPackOutput: %(NuGetPackOutput.Identity)" Condition="'%(NuGetPackOutput.FileExtension)' == '.nupkg'" />
</Target>

但是在大多数情况下,使用
$(PackageOutputAbsolutePath)$(PackageId)。$(PackageVersion).nupkg也可以工作


如果您发现这不适合您,或者您需要更具体的属性或项目,请对此问题发表评论。

您的意思是不能使用参数
$(PackageId)
$(PackageVersion)
?@LeoLiu-MSFT。我已经用外部工具设置和结果的屏幕截图更新了这个问题,它似乎只是替换了空字符串。这定义了一个
,它可能会工作,但我并不总是希望每次进行测试构建时都尝试上传。虽然他们应该失败(因为版本不会被更新),但我更喜欢半手动上传。理想情况下,
-Source
-ApiKey
选项值也应该从项目中的某个位置获取,但我认为没有定义任何位置。您可以使用
dotnet msbuild/t:Foo调用此目标,它不会自动运行。确定。通过向项目文件中添加一个
部分,并用
dotnet
调用替换外部工具定义,我已经实现了我想要的,即一个菜单命令,可以自动将包推送到库中。谢谢。