S
Steve Long
Hello,
I'm trying to get the installation folder that the user selects from my
setup program so I can write the value to the registry. I've written a
custom Installer that inherits from System.Configuration.Install.Installer
and overridden the Install and Uninstall methods. I'm trying to get the
install folder by using the this.Context.Parameters["INSTALLDIR"] (also
tried "TARGETDIR") and I get nothing back but TargetDir so that's what gets
written into the registry. Does anybody know a reliable way to get the
Install folder from the Context object? Or, am I going about this all wrong?
Code:
public override void Install(IDictionary stateSaver)
{
try
{
RegistryKey rKey = Registry.LocalMachine.OpenSubKey(SOFTWARE, true);
RegistryKey newKey = rKey.CreateSubKey(SUBKEY);
newKey.SetValue(IMAPPATH, this.Context.Parameters["TARGETDIR"]);
//IMAPPATH); //
stateSaver.Add(IMAPPATH, this.Context.Parameters["TARGETDIR"]);
newKey.Close();
rKey.Close();
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
base.Install (stateSaver);
}
I'm trying to get the installation folder that the user selects from my
setup program so I can write the value to the registry. I've written a
custom Installer that inherits from System.Configuration.Install.Installer
and overridden the Install and Uninstall methods. I'm trying to get the
install folder by using the this.Context.Parameters["INSTALLDIR"] (also
tried "TARGETDIR") and I get nothing back but TargetDir so that's what gets
written into the registry. Does anybody know a reliable way to get the
Install folder from the Context object? Or, am I going about this all wrong?
Code:
public override void Install(IDictionary stateSaver)
{
try
{
RegistryKey rKey = Registry.LocalMachine.OpenSubKey(SOFTWARE, true);
RegistryKey newKey = rKey.CreateSubKey(SUBKEY);
newKey.SetValue(IMAPPATH, this.Context.Parameters["TARGETDIR"]);
//IMAPPATH); //
stateSaver.Add(IMAPPATH, this.Context.Parameters["TARGETDIR"]);
newKey.Close();
rKey.Close();
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
base.Install (stateSaver);
}