如何检测项目的安装目录?

时间:2011-03-07 20:05:03

标签: c# visual-studio installer

我有一个Visual Studio C#项目,我有一个安装程序,可以将文件安装到用户指定的任何目录中。我还有另一个带有本地化语言资源的安装程序,我希望将其安装在上述目录中。

有人能指出我正确的方向吗?我想我必须对注册表项做一些事情,但我不知道该怎么做。

编辑:为了记录,我找到了这个页面:How to: Use a Registry Launch Condition to Specify a Target Directory。我按照说明操作,按照我的意愿行事。

3 个答案:

答案 0 :(得分:1)

你走在正确的轨道上。您的第一个安装程序会将其安装路径写入一个众所周知的注册表项。第二个安装程序将从该知名密钥读取路径,并将其dll放在相应的子文件夹中。

答案 1 :(得分:1)

通常,您将创建一个注册表子项和HKEY_LOCAL_MACHINE \ SOFTWARE \的值,然后只需在第二个安装程序中读取该键以确定将其放在何处。

类似 HKLM \ SOFTWARE \ MyApplication

然后你创建一个名为 InstallPath 的字符串值,并从那里写下第一个安装程序的路径。

根据您正在做的事情,您可能需要查看merge modules,以便使用一个MSI安装多个组件。

答案 2 :(得分:1)

这是一种方法:

Assembly a = Assembly.GetExecutingAssembly();

string folder = System.IO.Path.GetDirectoryName(a.CodeBase);