Ich versuche, eine benutzerdefinierte Aktion für meine Wix-Installation zu erstellen, und es funktioniert einfach nicht, und ich bin mir nicht sicher warum.
Hier ist das Bit in der entsprechenden Wix-Datei:
%Vor%Hier ist die vollständige Klassendatei für meine benutzerdefinierte Aktion:
%Vor%Die Aktion wird durch einen Tastendruck in der Benutzeroberfläche (für jetzt) ausgeführt:
%Vor%Wenn ich das MSI ausführe, erhalte ich diesen Fehler im Protokoll:
%Vor%Keiner der beiden Fehlercodes oder Nachrichten, die er mir gibt, ist genug, um mir zu sagen, was falsch ist. Oder ich verstehe einfach nicht, was sie sagen, ist falsch.
Zuerst dachte ich, es könnte daran liegen, dass ich Wix 3.5 benutzt habe, also um sicher zu gehen, dass ich Wix 3.0 benutzt habe, aber ich bekomme den gleichen Fehler.
Irgendwelche Ideen, was ich falsch mache?
Für Ihre benutzerdefinierte Action-Assembly benötigen Sie eine Konfigurationsdatei und setzen das Attribut useLegacyV2RuntimeActivationPolicy
auf true
. Nennen Sie Ihre Konfigurationsdatei CustomAction.config
. Wenn Sie dies nicht tun, wird es nicht funktionieren. Ich gehe davon aus, dass Sie auf dem .NET 4 Framework ausgeführt werden.
Weitere Informationen finden Sie hier . Auch, wie AntonyW bereits darauf hingewiesen hat, ist fuslogvw.exe in diesem Szenario sehr hilfreich.
Benutzerdefinierte Aktionen, die über DoAction
gestartet werden, können nicht in die Protokolldatei schreiben.
Das hat mich auch verwirrt, als ich anfing, WiX zu benutzen.
Wenn Sie sehen möchten, was vor sich geht, können Sie System.Diagnostics.Debugger.Launch()
am Anfang der benutzerdefinierten Aktion verwenden. Dadurch werden Sie aufgefordert, Visual Studio an den Prozess anzuhängen, damit Sie es debuggen können.
Dieser Fehler tritt auf, wenn Sie das Installationsprogramm project configuration / platform auf debug / x64 gesetzt haben und die benutzerdefinierte Aktion project configuration / platform auf debug / x86 setzen.
Korrigieren Sie die Plattformeinstellung, um die Projekte für dieselbe Plattform zu erstellen
In meinem Fall hat das Ändern der Plattform das Problem gelöst.
Danke Yogesh
Eine weitere mögliche Antwort - Sie haben möglicherweise die richtige CA-DLL angegeben und die richtige Methode angegeben. Wenn die Methode jedoch nicht mit [CustomAction] versehen ist, erhalten Sie diesen Fehler.
Für mich war es mein CustomAction DllEntry, das nicht mit meinem Methodennamen übereinstimmte. d. h.
%Vor%Haben Sie versucht, die Laufzeitbibliothekseinstellungen in der benutzerdefinierten Aktions-DLL zu ändern? Die Debug-Modus-Optionen / MDd und / MtD erfordern insbesondere Debug-Versionen der C ++ - Laufzeit, die auf Produktionsmaschinen nicht verfügbar sind (für sie gibt es keine weitervertreibbare Lizenz). Wenn Sie die Compileroption / MD verwenden, müssen Sie möglicherweise auch die Laufzeitversion von Visual Studio C ++ installieren, die Sie auf den Computern der Benutzer benötigen. Dazu gibt es ein Mergemodul: C ++ Redistributable-Paket mit WIX .
Tags und Links wix windows-installer custom-action