Visual studio VS2017中是否有包id和版本号的变量?(调用Nuget Push的外部工具菜单项)
我想在VS2017中添加一个外部“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,它会更干净。是否存在可用于构建确切文件名的合适变
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
调用替换外部工具定义,我已经实现了我想要的,即一个菜单命令,可以自动将包推送到库中。谢谢。