Как написать пользовательское действие для установщика C # в Visual Studio 2010? - PullRequest
3 голосов
/ 09 июня 2011

Я пишу установщик в Visual Studio 2010 для 64-разрядного компьютера.Там я использую пользовательское действие, чтобы получить значение CheckBox в процессе установки.

Пользовательское действие выглядит следующим образом:

/cbvalue="[CHECKBOXA1]"

и в моем классе установщика Iдобавили следующий код для получения параметра:

string myInput = Context.Parameters["cbvalue"];

Проект установки создается успешно, но при попытке установить файл установки во время установки выдается следующая ошибка:

Ошибка: 1001 System.BadImageFormatException.could не может загрузить сборку .....

Когда я пытаюсь это сделать, не добавляя пользовательское действие, оно устанавливается правильно.А также я хочу найти способ отладки проектов установки.

Ответы [ 2 ]

0 голосов
/ 18 мая 2012

Если вы создаете 64-битный установщик, используя настраиваемые действия, всегда помните, что вы получите эту ошибку, поскольку настраиваемые действия всегда используют архитектуру x86 для сборки, вам нужно использовать одно и то же настраиваемое действие, а затем редактировать MSI-файл с помощью ORCA Tool, см. эта ссылка , чтобы сделать то же самое.

0 голосов
/ 09 июня 2011

Вы добавили пользовательский параметр в Install (), например:

public override void Install(System.Collections.IDictionary stateSaver) 
{ 
   base.Install(stateSaver); 
   stateSaver.Add("cbvalue", Context.Parameters["cbvalue"].ToString()); 
}

Так что у вас должно получиться что-то вроде этого:

public override void Commit(System.Collections.IDictionary savedState) 
{ 
   base.Commit(savedState); 
   System.Windows.Forms.MessageBox(savedState["bcvalue"].ToString());    
}
...