Die benutzerdefinierte Wix-Aktion kann nicht in MSI ausgeführt werden

7

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?

    
Grandpappy 07.04.2010, 15:19
quelle

7 Antworten

7

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.

    
KnightsArmy 24.08.2010, 23:12
quelle
8

anstelle der Referenzierung der. DLL-Referenz der .CA.dll, funktionierte es für mich.

    
Kirka121 10.01.2014 16:26
quelle
6

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.

    
Bryan Batchelder 12.04.2010 18:34
quelle
1

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

    
Yogesh B 15.04.2014 08:22
quelle
1

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.

    
user3589896 05.08.2016 19:29
quelle
0

Für mich war es mein CustomAction DllEntry, das nicht mit meinem Methodennamen übereinstimmte. d. h.

%Vor%     
Chris Schiffhauer 19.04.2013 22:25
quelle
0

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 .

    
user1860707 01.11.2013 19:07
quelle