webentwicklung-frage-antwort-db.com.de

Fügen Sie pdb-Dateien in meine Nuget-Dateien (nupkg) ein

Ich verwende MSBuild, um meine Nuget-Pakete zu generieren.

Gibt es einen Befehl, den ich setzen muss, damit er meine .pdb-Dateien enthält, um beim Debuggen in die Quelle zu gelangen?

Ich möchte nicht, dass die Quelldateien in das Projekt eingefügt werden, das das Nuget-Paket enthält.

23
monstertjie_za

Es ist zwar möglicherweise nicht hilfreich für das Debuggen, es ist jedoch auf jeden Fall nützlich, .pdb-Dateien einzuschließen, damit die Stack-Traces Zeilennummern haben.

Enthalten Sie in der Datei nuspec ein <files>-Element (untergeordnetes Element von <package>, gleichgeordnetes Element von <metadata>). Folgendes habe ich in einer meiner Klassenbibliotheken:

<files>
    <file src="bin\$configuration$\$id$.pdb" target="lib\net452\" />
</files>

Stellen Sie sicher, dass sich das Ziel im selben Ordner befindet, in dem sich die DLL-Datei im Paket befindet.

22
Jeff Shepler

Wenn Sie VS2017 15.4 oder höher verwenden, können Sie eine MSBuild-Eigenschaft in Ihrer Projektdatei definieren

<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>

Dies wird in NuGet # 4142 diskutiert.

13
Paul Hatcher

Siehe diesen Link . Eigentlich sollten Sie am Ende des Befehls -Symbols hinzufügen, um ein Symbolpaket zu erstellen. Sie sollten keine pdb-Dateien zum Nuget-Hauptpaket hinzufügen.

2
Milad

Mit dem neuen csproj-Format kann die Erstellung von NuGet mit MSBuild ..__ einfacher durchgeführt werden. Um Ihre pdb-Dateien einzuschließen, müssen Sie lediglich das Tag <IncludeSymbols>true</IncludeSymbols> in eine Eigenschaftsgruppe ..__ eingeben. Dadurch wird ein zusätzliches .symbols.nupkg-Paket erstellt, das Sie verwenden kann in Ihren Feed freigeben.

0
iosi G