У меня были серьезные проблемы с решением этой проблемы: я не знаю, где происходит событие OnAfterInstall.
Позвольте мне объяснить. Я создал проект C #, который прекрасно компилируется и построен в режиме Release. После этого я создал проект установки с помощью мастера. Я добавил дополнительный диалог, который позволяет пользователю выбирать между двумя языками. Теперь моя проблема в том, что я хочу сохранить этот язык в реестре (или в файле app.config, чем проще, тем лучше), и я прочитал, что вам нужно обнаружить его в методе OnAfterInstall в унаследованном классе Installer.
Теперь, куда мне поместить этот класс? Логика говорит мне, что он идет в проекте C #, но жалуется, что не существует ни контекста, ни класса установщика. Когда я добавляю этот класс в проект установки, он не жалуется, но после этого не работает. Вот класс.
using System;
using System.Configuration.Install;
public class Install : Installer
{
public Install()
{
}
protected override void OnAfterInstall(IDictionary savedState)
{
string lang = Context.Parameters["lang"];
RegistryKey key = Registry.LocalMachine;
using (key = key.CreateSubKey(@"SOFTWARE\MyCompany\MyApp"))
{
key.SetValue("lang", lang);
key.Close();
}
base.OnAfterInstall(savedState);
}
}
PS: я уже передаю lang
как CustomActionData, используя / lang = [LANG] (где LANG - значение радио)