Debugging .NET Standard DLLs

DLLs mit persistenten Klassen müssen als .NET Standard 2.0-DLLs kompiliert werden, wenn sie mit .NET Core genutzt werden sollen. Das neue .csproj-Format, das notwendig ist, um .NET Standard DLLs zu kompilieren, erzeugt Debug-Dateien im sogenannten "portable PDB"-Format. Unglücklicherweise ist ILDASM nicht in der Lage, diese Dateien zu verarbeiten, sodass die Informationen über die Quellcode-Zeilen nicht zur Verfügung stehen. Dieses Problem wird hier diskutiert, eine schnelle Lösung ist nicht in Sicht.

Daher kann NDO keine Debug-Informationen zur Verfügung stellen, sofern das Debug-Format "portable PDB" ist.

Wenn Sie .NET Standard-DLLs für NDO kompilieren wollen, setzen Sie in der .csproj-Datei im ersten PropertyGroup-Element folgende Zeile ein:

<DebugType>full</DebugType>

Mit dieser Einstellung wird das alte Windows-bezogene PDB-Format erzeugt, mit dem die Debug-Informationen zur Verfügung stehen.

Wenn Sie die Debug-Informationen in einem Produktivsystem benötigen, das nicht Windows-basiert ist, dann müssen Sie eine portable PDB-Datei vor dem Deployment erstellen.

Eine Möglichkeit ist es, das DebugType-Element mit Konditionen anzulegen, sodass für Debug-Builds das full-Format und für Release-Builds das portable-Format erzeugt wird.