2010-02-26 14 views
2

DTF n'appelle pas la deuxième action si l'assembly d'action personnalisée a plusieurs actions. Il n'appelle toujours que la première action. Comme une solution de contournement, j'utilise une action dans un assembly. Cela fonctionne parfaitement toujours.Problème avec Wix DTF lors de la création de plusieurs actions dans un seul ensemble d'actions personnalisées DTF

Avez-vous une idée sur ce problème?

public class CustomActions 
{ 

    [CustomAction] 
    public static ActionResult CustomAction1(Session session) 
    { 
     [some code] 
    } 


    [CustomAction] 
    public static ActionResult CustomAction2(Session session) 
    { 
     [some code] 
    } 

} 

Répondre

1

Je n'ai jamais vu ce problème car je groupais des actions personnalisées ensemble dans un seul assemblage tout le temps. Chaque méthode sera exportée en tant que points d'entrée de type 1, puis vous écrivez une action personnalisée pour chaque fonction exportée. Windows Installer appelle l'autorité de certification qui appelle la fonction qui déclenche le CLR et appelle la méthode statique vers laquelle pointe l'action personnalisée.

0

Cela peut sembler évident, mais quand même. Lorsque vous définissez une action personnalisée dans votre fichier wxs, spécifiez-vous des valeurs différentes dans l'attribut "DllEntry"? Cet attribut indique une méthode, qui est en fait votre autorité de certification. Si vous copiez/collez des définitions d'actions personnalisées, vous pouvez oublier de changer le DllEntry ...

+0

Yan, Oui J'appelle un nom de méthode différent uniquement dans l'attribut DllEntry. Cela fonctionne parfaitement, quand je les appelle individuellement. mais il échoue toujours quand j'appelle séquentiellement deux CA différents du même assembly (ou dll). Il dit qu'il n'est pas capable d'extraire l'ensemble du binaire. – sankar

+0

Cela dépend-il de l'attribut Return de la déclaration CA? Par exemple, si vous définissez Return = 'check' (qui est par défaut) pour les deux CA, est-il reproductible? –

1

Probablement, il sera utile pour certains chercheurs, en particulier pour les novices .Net: vérifiez cette classe et la méthode statique de l'action personnalisée l'entrée est publique!