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.
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.
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.
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.
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.