Visual studio 2017 自动发布使用VS2017生成的NuGet包
Visual Studio 2017的新增功能是在构建时为某些目标类型生成NuGet包(即,Visual studio 2017 自动发布使用VS2017生成的NuGet包,visual-studio-2017,nuget-package,.net-standard,Visual Studio 2017,Nuget Package,.net Standard,Visual Studio 2017的新增功能是在构建时为某些目标类型生成NuGet包(即,.NET Standard 2.0,我正在使用它) 这非常有效,成功构建时会生成.nupkg文件 但是,我不知道如何将构建的包自动发布到本地存储库 <Target Name="PostPackNugetDeploy" AfterTargets="Pack" Condition="'$(Configuration)' == 'Release'"
.NET Standard 2.0
,我正在使用它)
这非常有效,成功构建时会生成.nupkg
文件
但是,我不知道如何将构建的包自动发布到本地存储库
<Target Name="PostPackNugetDeploy" AfterTargets="Pack" Condition="'$(Configuration)' == 'Release'">
<Exec Command="="%userprofile%\.nuget\nuget.exe push "$(OutputPath)$(PackageId).$(PackageVersion).nupkg" -Source "$(NuGetSourceRelease)" -Verbosity Detailed" />
</Target>
<Target Name="PostPackNugetDeploy" AfterTargets="Pack" Condition="'$(Configuration)' == 'Release'">
<Exec Command="%userprofile%\.nuget\nuget.exe add "$(OutputPath)$(PackageId).$(PackageVersion).nupkg" -source \\Server\Packages" />
</Target>
我已经尝试了以下生成后事件:
nuget push -Source https://my.nuget.server/nuget/ "C:\Source\MyProject\bin\Release\MyProject.1.0.0.nupkg"
但这带来了两个问题:
nuget push$(NugetPackage)
。我也无法找到一个宏/变量的组合来有效地获得包名有人用过这个吗?我错过什么了吗?有解决办法吗?是否正在处理此功能?此处已请求此功能:
NuGet发布通常使用构建/部署自动化软件(如TFS、VSTS、Jenkins等)进行处理。您可以通过将下面的行直接添加到库csproj中来自动发布到NuGet。您需要将环境变量设置为nuget.exe的位置,将该位置添加到系统的路径中,或者将其硬输入到
命令
参数中
就我个人而言,我更喜欢下载并将其放入用户的%userprofile%\.nuget
文件夹中。这是nuget存储包的本地缓存的地方,因此应该已经创建了它
发布到远程存储库的示例
<Target Name="PostPackNugetDeploy" AfterTargets="Pack" Condition="'$(Configuration)' == 'Release'">
<Exec Command="="%userprofile%\.nuget\nuget.exe push "$(OutputPath)$(PackageId).$(PackageVersion).nupkg" -Source "$(NuGetSourceRelease)" -Verbosity Detailed" />
</Target>
<Target Name="PostPackNugetDeploy" AfterTargets="Pack" Condition="'$(Configuration)' == 'Release'">
<Exec Command="%userprofile%\.nuget\nuget.exe add "$(OutputPath)$(PackageId).$(PackageVersion).nupkg" -source \\Server\Packages" />
</Target>
谢谢-我在该功能请求中添加了一条评论以跟踪它。似乎还有其他一些人也需要这样做——并不是每个人都有功能齐全的ALM设置,我们中的一些人喜欢直接从VS发布,因为它快速且无摩擦。:)为我工作,但我使用了“copy”命令而不是“exec”命令:
如果不发布它,它会复制文件。如果您发布它,它将为版本控制创建文件夹结构。谢谢提示。我是nuget新手,所以我将尝试使用“add”命令进行比较。John是对的。将其更改为exec nuget后,表示版本的文件夹、sha文件和nuspec文件都出现在nuget提要存储库中。