我想使用VSTS构建工具打包并发布基于.NET标准的代码,生成NuGet包和符号包到我的私有NuGet源(在VSTS Artifacts中创建)。
我尝试使用dotnet CLI任务来构建和发布,但是它只会将.nupkg发布到NuGet源中,而不是*.snupkg。
我已经搜索了很多关于发布到nuget.org的文章,但没有找到与发布到私有源相关的信息。
我想使用VSTS构建工具打包并发布基于.NET标准的代码,生成NuGet包和符号包到我的私有NuGet源(在VSTS Artifacts中创建)。
我尝试使用dotnet CLI任务来构建和发布,但是它只会将.nupkg发布到NuGet源中,而不是*.snupkg。
我已经搜索了很多关于发布到nuget.org的文章,但没有找到与发布到私有源相关的信息。
.snupkg
包,因此我们需要一个NuGet服务器来帮助我们从.snupkg
包中读取.pdb
文件。Azure DevOps Feed更倾向于成为共享软件包的存储库。您可能希望将符号PDB直接嵌入主 NuGet 包中。在我看来,这是目前最好的做法 - 这样做更简单,完全消除了使用符号服务器的需要,并且适用于所有仓库类型,包括私有 VSTS/Azure DevOps feeds 和公共仓库。唯一的缺点是,即使客户端不使用调试信息,它们也必须下载稍大一些的 NuGet 包,但这似乎是次要的。
将 PDB 添加到 NuGet 包中通常只需将以下内容添加到项目文件中:
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
CopyDebugSymbolFilesFromPackages
设置为true,以允许VS找到PDB文件(请参阅https://github.com/dotnet/sdk/pull/27580),但默认情况下未启用此功能。因此,如果消费者知道这个额外的步骤,嵌入式PDB文件可以工作,但是单独发布PDB文件会更加顺畅。 - Bret Johnson - MSFTsymbols.nupkg
文件而不是.snupkg
。这会导致您看到的蹲点行为。 - Matthew Steeples