2010-02-26 1 views
2

DTF не вызывает второе действие, если сборка пользовательских действий имеет более одного действия. Он всегда вызывает только первое действие. В качестве обходного пути я использую одно действие в одной сборке. Он работает отлично.Проблема с Wix DTF при создании более одного действия в отдельном сборке DTF

У вас есть идея по этой проблеме?

public class CustomActions 
{ 

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


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

} 

ответ

1

Я никогда не видел эту проблему, так как я группирую индивидуальные действия вместе в единой сборке все время. Каждый метод будет экспортироваться как точки входа 1-го уровня, а затем вы будете писать настраиваемое действие для каждой экспортируемой функции. Установщик Windows вызывает CA, который вызывает функцию, которая запускает CLR, и вызывает статический метод, на который указывает пользовательское действие.

0

Это может показаться очевидной вещью, но все же. Когда вы определяете пользовательские действия в вашем файле wxs, указываете ли вы разные значения в атрибуте «DllEntry»? Этот атрибут указывает метод, который на самом деле является вашим центром сертификации. Если вы копируете/вставляете пользовательские определения действий, вы можете просто забыть изменить DllEntry ...

+0

Ян, Да, я вызываю другое имя метода только в атрибуте DllEntry. Он работает отлично, когда я их называю индивидуально. но он терпит неудачу всегда, когда я вызываю последовательно два разных ЦС из одной и той же сборки (или dll). В нем говорится, что невозможно извлечь сборку из двоичного файла. – sankar

+0

Зависит ли он от атрибута Return объявления CA? Например, если вы установите Return = 'check' (который по умолчанию) для обоих CA, он воспроизводимый? –

1

Возможно, это будет полезно для некоторых поисковиков, особенно для новичков .Net: дважды проверьте этот класс и статический метод пользовательских действий запись общедоступна!

Смежные вопросы