Nutzung des ZUGFeRD-Standards mit NAV 2009 bis NAV 2018 und BC 14
Für den ZUGFeRD-Export und -Import in C/AL-Systemen (NAV 2009 bis NAV 2018 sowie BC 14 im Windows Client) ist eine externe DLL erforderlich. Diese DLL übernimmt die technische Verarbeitung des ZUGFeRD-Formats, also das Einbetten einer XML-Datei in eine PDF sowie das Auslesen einer eingebetteten XML aus einer bestehenden PDF. Die DLL muss einmalig auf dem Server oder Client installiert werden, bevor SIEVERS E-Rechnung ZUGFeRD-Belege verarbeiten kann.
Je nach eingesetzter NAV-Version kommen zwei verschiedene DLL-Varianten zum Einsatz:
| NAV-Version | Verwendete DLL |
|---|---|
| NAV 2009 | Automation DLL - Installation auf dem Client |
| NAV 2013 bis NAV 2018, BC 14 C/AL | .NET DotNet-Interop DLL - Installation auf dem Server |
Achtung
Es existiert keine SIEVERS E-Rechnung-Version, in der sowohl Windows- als auch WebClient für den ZUGFeRD Export und Import genutzt werden können. Der Kunde muss sich für eine Möglichkeit entscheiden.
ZUGFeRD .NET DLL für NAV 2013 bis NAV 2018 und BC 14 C/AL
Die ZUGFeRDDLLDotNet wird als .NET DotNet-Interop DLL über DotNet-Variablen in C/AL eingebunden. Eine COM-Registrierung (RegAsm/gacutil) ist nicht notwendig. Die DLL wird ausschließlich als x64 bereitgestellt. Eine Unterscheidung zwischen x86 und x64 entfällt, da das NAV Service Tier ab Version 2013 immer als 64-Bit-Prozess läuft.
Installation
Die DLL wird zusammen mit allen Abhängigkeiten als ZIP-Datei Dateien für ZUGFeRD in NAV ab 2013.zip ausgeliefert. Entpacken Sie den Inhalt der ZIP-Datei in den Add-ins-Ordner des NAV Service Tiers in einen Unterordner ZUGFeRDDLLDotNet:
Standardpfad (Beispiel NAV 2013):
C:\Program Files\Microsoft Dynamics NAV\70\Service\Add-ins\ZUGFeRDDLLDotNet\
Der Ordner muss nach dem Entpacken folgende Dateien enthalten:
ZUGFeRDDLLDotNet\
├── ClearScript.Core.dll
├── ClearScript.V8.dll
├── ClearScript.V8.ICUData.dll
├── ClearScriptV8.win-x64.dll
├── Microsoft.Extensions.Logging.Abstractions.dll
├── Newtonsoft.Json.dll
└── ZUGFeRDDLLDotNet.dll
Wichtig: Die Dateinamen der DLLs dürfen nicht verändert werden. Alle DLLs müssen im selben Ordner wie ZUGFeRDDLLDotNet.dll liegen.
Nach dem Entpacken muss der NAV Service Tier neu gestartet werden, damit die Assemblies geladen werden.
Hinweis
Es kann sein, dass Windows den Zugriff auf die heruntergeladenen Dateien automatisch blockiert. Falls es hierbei Fehler gibt, kontrollieren Sie bitte, ob bei den Dateieigenschaften im Tab Allgemein der Haken bei Zulassen im Abschnitt Sicherheit gesetzt ist.

Hinweis für Entwickler
Für die reine Benutzung im RoleTailored Client (RTC) ist die Installation der DLLs nur auf dem Service Tier erforderlich. Möchten Sie C/AL-Code entwickeln oder kompilieren, der die ZUGFeRDDLLDotNet referenziert, müssen die DLLs zusätzlich im Add-ins-Ordner des Clients abgelegt werden – andernfalls schlägt die Kompilierung fehl.
Standardpfad Client (Beispiel NAV 2013):
C:\Program Files (x86)\Microsoft Dynamics NAV\70\RoleTailored Client\Add-ins\ZUGFeRDDLLDotNet\
Der Inhalt des Ordners ist identisch mit dem Service-Tier-Ordner.
Fehlerdiagnose
Die DLL schreibt Diagnosemeldungen in das Windows-Eventlog (Quelle: SNCZUGFeRDDLLDotNet). Bei Problemen mit fehlenden Abhängigkeiten können dort Details eingesehen werden.
Typische Fehlermeldung bei fehlenden DLLs:
Diese Meldung richtet sich an C/AL-Programmierer: Fehler beim Aufrufen von
'ZUGFeRDDLLDotNet.ZUGFeRDDLLDotNet.MergePDFAndXMLFile': Die Datei oder Assembly "..." wurde nicht gefunden.
Lösung: Sicherstellen, dass alle DLLs aus der ZIP-Datei im Ordner vorhanden sind und der Service Tier nach der Installation neu gestartet wurde.
ZUGFeRD Automation DLL für NAV 2009
Hinweis
Wenn Sie bereits eine der früheren Versionen der ZUGFeRD-DLLs installiert haben, entfernen Sie bitte alle ZUGFeRD-Dateien aus ihrem RTC-Ordner und führen Sie das untenstehende Skript nach Anleitung aus. Sprechen Sie bei Fragen hierzu gerne Ihren Ansprechpartner bei der SIEVERS-GROUP an.
Für NAV 2009 wird die Automation DLL verwendet. Sie müssen ein Installationsskript ausführen, das folgende Schritte ausführt:
- Kopieren aller Dateien aus dem entsprechenden Bit-Versionsordner in den RoleTailored Client Ordner
- Entsperrung aller kopierten Daten im Zielordner
- Registrierung ZUGFERDDLL.dll mit RegAsm. Sie finden RegAsm auch unter C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe
- Registrierung ZUGFeRDDLL.dll im GAC mit gacutil. Falls Sie diesen Schritt manuell ausführen müssen, können Sie das gacutil auch manuell ausführen. Sie finden das Tool beispielsweise in der Developer Command Prompt for VS 2022 mit den .NET Desktop-Buildtools oder auch im Windows SDK. Wenn sie die Umgebungsvariable Path auf den Pfad zur gacutil.exe erweitern, können sie das Tool direkt von ihrer PowerShell aus ausführen.
- Setzen der NetFx40_LegacySecurityPolicy in der Microsoft.Dynamics.Nav.Client.exe.config im RoleTailored Client-Ordner auf false.
- Setzen des Assembley - probingPath für ZUGFeRDDLL_Libs in der Microsoft.Dynamics.Nav.Client.exe.config im RoleTailored Client-Ordner
Dieses Skript muss für jeden Nutzer, der ZUGFeRD-Rechnungen ausstellen oder importieren will, ausgeführt werden. Basis ist das zip-Archiv Dateien für ZUGFeRD in NAV.zip, das Sie im Partner Portal finden.

Führen Sie folgenden Befehl mit einer PowerShell aus:
.\Install-ZUGFeRD.ps1 -SourceFolder . -TargetFolder 'C:\Program Files\Microsoft Dynamics NAV\100\RoleTailored Client' -BitVersion 64
- SourceFolder: Quellordner - Aus Zip-Datei entpackter Ordner
- TargetFolder: RoleTailored Client Ordner
- Force: Ausführung ohne abschließende Abfrage
SourceFolder und TargetFolder müssen entsprechend auf ihr Setup abgeändert werden. Mit diesem Skript werden die Dateien aus dem Release Ordner an die richtigen Stellen gelegt und die ZUGFeRDDLL korrekt registriert.
Bei Erfolg bekommen Sie das Feedback Installation erfolgreich abgeschlossen und können SIEVERS E-Rechnung auf dem C/AL System mit ZUGFeRD nutzen.

Hinweis
Es kann sein, dass Windows den Zugriff auf die heruntergeladenen Dateien automatisch blockiert. Falls es hierbei Fehler gibt, kontrollieren Sie bitte, ob bei den Dateieigenschaften im Tab Allgemein der Haken bei Zulassen im Abschnitt Sicherheit gesetzt ist.

Registrierung der DLL aufheben
Um die DLL wieder zu entfernen, nutzen Sie folgende Befehle:
32bit
C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe .\ZUGFeRDDLL.dll /tlb:ZUGFeRDDLL.tlb /unregister
64bit
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe .\ZUGFeRDDLL.dll /tlb:ZUGFeRDDLL.tlb /unregister
Anschließend müssen Sie erneut gacutil.exe benutzen. Dieses finden Sie z.B. in der Developer Command Prompt for VS 2022. Hier wird nicht zwischen 32 und 64bit unterschieden. Der Parameter /u wird nur mit dem Namen der DLL aufgerufen, nicht mit dem Dateinamen:
gacutil /u ZUGFeRDDLL