У меня есть приложение С#.net 4, я начинаю создавать установщик.
Установленная программа работает нормально, но мой клиент хочет, чтобы приложение начиналось с окна (это панель инструментов "Всегда сверху", которая помогает им управлять своим вызовом).
Я думал создать "установщик классов" и в него вставить ключ в реестр.
У меня две проблемы:
Во-первых: Как я могу найти исполняемый путь? Он может меняться между установкой. Я нашел где-то Application.ExecutablePath, но похоже, что он находится в Application.Window.Forms, поэтому я считаю его несовместимым с WPF
Во-вторых: мне нужно вставить этот ключ в реестр локальной машины. Есть ли способ в установщике Windows указать, что пользователь должен иметь права администратора?
Вот код, который я начал:
RegistryKey rkApp = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
rkApp.SetValue("CstStart", ???);
Большое спасибо за вашу помощь!
EDIT: я обнаружил, что могу передать свои пользовательские действия некоторые данные, используя:
/DIR = "[TARGETDIR] \"
в CustomActionData.
Обычно он сказал, что я могу получить его через
this.Context.Parameters["DIR"];
Но.... кажется, что в моем классе установщика this.Context имеет значение null: (
EDIT2: Контекст был нулевым, потому что я делал это в конструкторе, теперь я делаю это в случае this.AfterInstall, и теперь я получаю контекст, который, как представляется, содержит var "assemblypath", который содержит точно путь мне нужен.