how can get the path from installer and how set in

2019-05-11 16:55发布

问题:

i am writing a win app and now i want to make setup for my app,my code is:

Microsoft.Win32.RegistryKey rk = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\Cu­rrentVersion\Run");
 rk.SetValue("MyAppName", @"C:\WhereMyAppIs\MyApp.exe");

now how can get the path from installer to set it??? thanks.

回答1:

If you use Visual Studio, you can right click on the setup project -> View -> Registry and then set the registry key you like.

Check out this sites:

msi - Set InstallPath registry key

Registry Settings Management (MSDN)



回答2:

If it was installed using Windows Installer (.MSI files), you can use the MsiGetComponentPath API:

    [DllImport("msi.dll", CharSet = CharSet.Unicode)]
    private static extern int MsiGetComponentPath(string szProduct, string szComponent, StringBuilder lpPathBuf, ref int pcchBuf);

Call it like this:

int len = 256;
StringBuilder sb = new StringBuilder(len);
MsiGetComponentPath(productCode, componentId, sb, ref len);