[Gelöst] Install Codeunit wird bei Reinstall nicht erneut

Heute 11:16

Hallo zusammen,

ich weiß aktuell nicht, ob ich komplett auf dem Schlauch stehe oder ob es sich möglicherweise um einen Bug handelt. Ich arbeite in der Business Central SaaS Version 27.1.

Ich habe das Phänomen, dass meine Install Codeunit lediglich einmal ausgeführt wird. Bei einem anschließenden Reinstall passiert einfach nichts mehr – der Trigger wird nicht erneut aufgerufen. Laut der Microsoft-Dokumentation müsste der Install-Trigger aber auch beim Reinstall ausgelöst werden:
https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-extension-install-code

Um das Verhalten reproduzierbar zu testen, habe ich ein kleines Beispiel erstellt:

Eine Install-Codeunit, die bei der Erstinstallation (App-Version 1.0.0.0) korrekt durchläuft.

Beim zweiten Versuch – einem Reinstall mit Version 1.0.0.1 – sollte absichtlich ein Fehler geworfen werden.

Der Quellcode der App ist in beiden Versionen unverändert.

Code:
codeunit 90755 "XX Base Install Test"
{
    Subtype = Install;

    trigger OnInstallAppPerCompany()
    var
        AppInfo: ModuleInfo;
    begin
        NavApp.GetCurrentModuleInfo(AppInfo);
        if AppInfo.DataVersion = Version.Create(0, 0, 0, 0) then
            HandleFreshInstall()
        else
            HandleReinstall();
    end;


    local procedure HandleFreshInstall()
    begin
        //No Error Occur
    end;

    local procedure HandleReinstall()
    begin
        Error('Something....bad happend');
    end;
}

Die Installation/Neuinstallation führe ich jeweils über den WebClient → Erweiterungsverwaltung durch.

Erwartetes Verhalten: Der Install-Trigger sollte beim Reinstall erneut ausgeführt werden.
Tatsächliches Verhalten: Der Trigger springt nicht an, die Erweiterung wird einfach erfolgreich installiert.

FailReinstall.png


Frage: Übersehe ich hier etwas? Hat jemand eine Idee, warum der Install-Trigger bei einem Reinstall nicht ausgeführt wird bzw. wie ich das Verhalten beeinflussen kann?

Version: DE Business Central 27.1 (Plattform 27.0.42139.0 + Anwendung 27.1.41698.42551)
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von BastianB am 5. Dezember 2025 15:59, insgesamt 1-mal geändert.

Re: Install Codeunit wird bei Reinstall nicht erneut ausgefü

Heute 14:10

laut MS-Doku, die du verlinkt hast:
Install code is run only when an extension version is first installed or reinstalled by running the Install-NAVApp cmdlet or from the Extension Management page in the client. Install code isn't run when a new version of an existing extension is installed as part the upgrade operation by running the Start-NAVAppDataUgrade cmdlet. For upgrade, see Upgrading Extensions.


ergo, install wird beim ALLER ALLER Ersten mal ausgeführt, nicht bei Updates.

Für eine neue Version, brauchst du eine UpdateCodeunit

-> Subtype = Upgrade;

Re: Install Codeunit wird bei Reinstall nicht erneut ausgefü

Heute 15:59

sweikelt hat geschrieben:Für eine neue Version, brauchst du eine UpdateCodeunit
-> Subtype = Upgrade;


Danke, du hast vollkommen recht – man müsste nur richtig lesen können. Ich hatte den folgenden Abschnitt:
Install code is run only when an extension version is first installed or reinstalled by running the Install-NAVApp cmdlet or from the Extension Management page in the client.
falsch interpretiert. Aus dem weiteren Kontext wird jedoch deutlich, dass sich der Reinstall nur auf dieselbe Version beziehen darf.

Ausschnitt aus der Dokumentation:
Code:
// If not a fresh install, then we are Re-installing the same version of the extension
            HandleReinstall;