Fehler 2896 mit einem WiX-C#/.NET 4 benutzerdefinierte Aktion
Ich bin versucht, meine erste eigene Aktion in WiX und ich bekomme:
Fehler 2896: Ausführen der Aktion CustomActionTest gescheitert.
Ich benutze Visual Studio 2010, WiX 3.5, 64-bit Windows 7 Ultimate .NET Framework 4.
Hier sind, was ich denke, sind die entsprechenden Abschnitte:
<Binary Id="JudgeEditionCA" SourceFile="..\JudgeEditionCA\bin\Debug\JudgeEdition.CA.dll" />
<CustomAction Id="CustomActionTest" BinaryKey="JudgeEditionCA" DllEntry="CustomActionOne" Execute="immediate"/>
<Control Id="Next" Type="PushButton" X="248" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)" >
<Publish Event="DoAction" Value="CustomActionTest">1</Publish>
<Publish Event="DoAction" Value="InvalidClientDesc">CLIENT_DESC_VALID = "0"</Publish>
<Publish Event="NewDialog" Value="VerifyReadyDlg">CLIENT_DESC_VALID = "1"</Publish>
</Control>
Aus der Aktion:
namespace JudgeEditionCA
{
public class CustomActions
{
[CustomAction]
public static ActionResult CustomActionOne( Session session )
{
return ActionResult.Success;
}
}
}
Und die Konfiguration der benutzerdefinierten Aktion:
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="false">
<supportedRuntime version="v4.0" />
</startup>
</configuration>
Und schließlich habe ich verwendet, eine Projekt-Referenz in meinem WiX-Projekt, um die benutzerdefinierte Aktion. Ich bin nicht sicher, was ich falsch mache.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich dachte, es läuft meine msi mit dem /lvx option, um eine ausführliche Protokollierung. Ich hatte auch meine Aktion an die "InstallExecuteSequence" Abschnitt, um eine aussagekräftige Fehlermeldung. Wenn der Aufruf an die CA wurde in der Drucktaste nichts sinnvolles zurückgegeben wurde.
System.BadImageFormatException: Konnte nicht geladen, Datei oder assembly 'JudgeEdition' oder eine Ihrer Abhängigkeiten. Diese Baugruppe wurde von einer Laufzeit, die neuer als die derzeit geladene Laufzeit ist und kann nicht geladen werden.
Änderte ich die useLegacyV2RuntimeActivationPolicy-Attribut auf true. Angefangen hat alles schön funktioniert.
Diese links halfen mir bekommen Sie bis zu Geschwindigkeit:
Als eine Folge KnightsArmy's Antwort dieser Fehler wird auch ausgegeben, wenn die DllEntry - Attribut auf die CustomAction element ist falsch. In meinem Fall hatte ich einen Tippfehler und das nur anhand der Informationen, die ich bekommen konnte, aus dem log war der berüchtigte Fehler 2896.