NX Open in VS Code debuggen
Inhaltsverzeichnis
Hintergrund
In einem anderen Artikel hatte ich gezeigt, wie NX Open Programme mit dem Quellcodeeditor VS Code (Visual Studio Code) erstellt und kompiliert werden können1.
Ein wichtiges Werkzeug bei der Programmentwicklung und Fehlersuche ist der Debugger. VS Code und die C# Erweiterung zielen in erster Linie auf .NET Core und nicht das .NET Framework, das für die NX Open Entwicklung benötigt wird. Dennoch lassen sich auch .NET Framework Applikationen debuggen2.
Voraussetzungen
Das hier beschrieben Vorgehen ist nur zum Debuggen von kompilierten NX Open Applikationen geeignet. Ein Debuggen von Journalen3 ist unter VS Code nicht möglich.
Das Aufsetzen der Entwicklungsumgebung wird in 1 beschrieben.
Anpassen des NX Open Projektes
Zunächst muss das Projektfile *.csproj angepasst werden. Es ist wichtig, dass als PlatformTarget x64 angegeben ist und als DebugType portable.
...
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
<DebugSymbols>true</DebugSymbols>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
<PlatformTarget>x64</PlatformTarget><!-- To enable debugging with vs code-->
<DebugType>portable</DebugType><!-- To enable debugging with vs code-->
</PropertyGroup>
...
Erstellen einer Startkonfiguration
Zum Erstellen einer Debug-Konfiguration muss die Datei launch.json um einen entsprechenden Eintrag erweitert werden. Falls diese Datei noch nicht existiert, muss sie im Verzeichnis .vscode neu angelegt werden (siehe z.B. 4).
{
"version": "0.2.0",
"configurations": [
{
"name": "Attach to process",
"type": "clr",
"request": "attach",
"processId" : "${command:pickProcess}"
}
],
"compounds": []
}
Debuggen
Zunächst wird NX regulär gestartet. Danach kann mit F5 die Debug-Sitzung in VS Code gestartet und der NX Prozess ausgewählt werden.
Beim Ausführen der NX Open Applikation werden jetzt Break-Points angesprungen.
-
NX Open und VS Code: https://www.ib-boettcher.de/de/post/nxopen-vscode/ ↩︎ ↩︎
-
Desktop .NET Framework: https://github.com/OmniSharp/omnisharp-vscode/wiki/Desktop-.NET-Framework ↩︎
-
Der Begriff Journal wird im erweiterten Sinn häufig auch für NX Open-Programme allgemein verwendet. Hier sind aber ausschließlich in VB.NET oder C# realisierte Programme gemeint, die direkt als Quellcode ausgeführt werden. ↩︎
-
stackoverflow, feO2x: https://stackoverflow.com/a/53271098 ↩︎