una sesion plantillas paso pagina iniciar gratis entrar crear como blog c# wix wix3.5 custom-action

c# - sesion - wix login



Error 2896 con una acción personalizada de WiX C#/. NET 4 (2)

Intento usar mi primera acción personalizada en WiX y obtengo:

error 2896: Falló la acción de ejecución CustomActionTest.

Estoy usando Visual Studio 2010, WiX 3.5, Windows 7 Ultimate de 64 bits, .NET Framework 4.

Estas son las secciones que creo que son relevantes:

<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>

De la acción:

namespace JudgeEditionCA { public class CustomActions { [CustomAction] public static ActionResult CustomActionOne( Session session ) { return ActionResult.Success; } } }

Y el archivo de configuración de la acción personalizada:

<configuration> <startup useLegacyV2RuntimeActivationPolicy="false"> <supportedRuntime version="v4.0" /> </startup> </configuration>

Y finalmente he utilizado una referencia de proyecto en mi proyecto de WiX para la acción personalizada. No estoy seguro de lo que estoy haciendo mal.


Como corolario de la respuesta de KnightsArmy , este error también se produce cuando el atributo DllEntry en el elemento CustomAction es incorrecto. En mi caso, tuve un error tipográfico y la única información de error que pude obtener del registro fue el infame error 2896.


Lo descubrí ejecutando mi msi con la opción / lvx para obtener un registro detallado. También tuve que mover mi acción a la sección InstallExecuteSequence para obtener un mensaje de error significativo. Cuando la llamada a la CA estaba en PushButton no se devolvía nada significativo.

<InstallExecuteSequence> <Custom Action=''CustomActionTest'' After=''InstallFinalize'' /> </InstallExecuteSequence>

System.BadImageFormatException: No se pudo cargar el archivo o ensamblado ''JudgeEdition'' o una de sus dependencias. Este ensamblado está creado por un tiempo de ejecución más nuevo que el tiempo de ejecución cargado actualmente y no se puede cargar.

Cambié el atributo useLegacyV2RuntimeActivationPolicy a verdadero. Todo comenzó a funcionar bien.

<configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" /> </startup> </configuration>

Estos enlaces me ayudaron a acelerar: