【发布时间】:2011-12-07 20:02:55
【问题描述】:
我在如何解决这个问题上遇到了严重的问题:我不知道 OnAfterInstall 事件的去向。
让我解释一下。我创建了一个可以完美编译并以发布模式构建的 C# 项目。之后,我使用向导创建了一个安装项目。我添加了一个额外的对话框,让用户可以在两种语言之间进行选择。现在,我的问题是我想将该语言存储到注册表中(或 app.config 文件,越简单越好),并且我读过您需要在继承的 Installer 类的 OnAfterInstall 方法中检测它。
现在,我应该把那个类放在哪里?逻辑告诉我它在 C# 项目中,但它抱怨既不存在 Context 也不存在 Installer 类。当我将此类添加到安装项目时,它不会抱怨,但之后它就不起作用了。这是课程。
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=[LANG](其中 LANG 是无线电值)将 lang 作为 CustomActionData 传递
【问题讨论】:
-
您是否添加了对 System.Configuration.Install 的引用?
-
也是我的错,谢谢=)
标签: c# windows windows-installer installation