簡體   English   中英

自動生成帶有符號的 nuget package

[英]automatically generate nuget package with symbols on build

我有一個 C# 項目(.net 6.0),我想在我(重新)構建它時自動創建一個 nuget。

這里說:

要在運行dotnet build時自動運行dotnet pack ,請將以下行添加到<PropertyGroup>內的項目文件中:

 <GeneratePackageOnBuild>true</GeneratePackageOnBuild>

我試過了,它可以工作,但是沒有添加任何符號( .pdb文件)。 我怎樣才能做到這一點?

  • 命令dotnet pack --include-symbols可以用於此,但我如何告訴.csproj文件使用該命令而不是dotnet pack

  • dotnet pack --include-symbols將生成兩個 nuget 包,一個以.nupkg結尾,一個以.symbols.nupkg 前者不包含.pdb ,后者包含。 我只想要一個包含.dll.pdb的文件(沒有.symbols前綴的.nupkg文件)。


我嘗試了以下方法:

  • 刪除GeneratePackageOnBuild屬性
  • 將目標添加到項目: <Target Name="BuildNuget" AfterTargets="AfterBuild"><Exec Command="dotnet pack --include-symbols"/></Target>

但是現在當我運行dotnet build時,我遇到了一個無限循環:(不幸的是它是德語,但你可以看到它只是重復。)

 Wiederherzustellende Projekte werden ermittelt... Alle Projekte sind für die Wiederherstellung auf dem neuesten Stand. MyProject-> C:\Users\...\MyProject\bin\Debug\net6.0-windows\MyProject.dll Microsoft (R)-Build-Engine, Version 17.0.0+c9eb9dd64 für .NET Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten. Wiederherzustellende Projekte werden ermittelt... Alle Projekte sind für die Wiederherstellung auf dem neuesten Stand. MyProject-> C:\Users\...\MyProject\bin\Debug\net6.0-windows\MyProject.dll Microsoft (R)-Build-Engine, Version 17.0.0+c9eb9dd64 für .NET Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten. Wiederherzustellende Projekte werden ermittelt... Alle Projekte sind für die Wiederherstellung auf dem neuesten Stand. MyProject-> C:\Users\...\MyProject\bin\Debug\net6.0-windows\MyProject.dll Microsoft (R)-Build-Engine, Version 17.0.0+c9eb9dd64 für .NET Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten. Wiederherzustellende Projekte werden ermittelt...

這里說:

dotnet pack 命令構建項目並創建 NuGet 包。

因此,如果我在構建后將dotnet pack作為命令,我將進入一個無限的構建堆棧。 在同一頁面上列出了nuget pack的選項。 其中之一是--no-build

將目標更改為

<Target Name="BuildNuget" AfterTargets="AfterBuild">
    <Exec Command="dotnet pack --no-build --include-symbols"/>
</Target>

解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM