我部署使用MSI安装程序设计与Visual Studio安装项目我的应用程序。 如何设置一个注册表项应用程序的安装路径?
Answer 1:
这样做的一个方法是创建一个在您安装自定义操作。 在自定义操作,你可以提供CustomActionData“/ PATH =” [TARGETDIR] *”。在您的自定义操作代码,你可以参考Context.Parameters [‘路径’],并接收来自安装在你的.NET代码通过安装路径。
现在,你有[TARGETDIR]您的自定义操作代码中,你可以继续使用的Microsoft.Win32命名空间来设置注册表项。
HTH - 威尔
Answer 2:
其实,当我在寻找同样的东西以下解决方案还提到:
在注册表键使用[TARGETDIR]。
Answer 3:
我想补充到把[TARGETDIR]在注册表项值。 如果您正在使用vs2012使用[INSTALLDIR]相反在注册表键安装屏蔽。
Answer 4:
- 按照此步骤:
- 添加一个类库项目到配置方案。
- 添加安装文件到您的类库项目。
- 创建类库项目添加到您的设置应用程序文件夹
- 添加创建的项目安装程序文件(在设置自定义操作窗口)“安装”子树项目。
- 点击添加项目,按F4打开属性窗口。
- 上属性窗口集 “/ PDIR =”[TARGETDIR] \”到CustomActionData。
在安装程序文件(在类库项目)写的后续代码写入安装路径到注册表中。
Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary) MyBase.Install(stateSaver) Dim regsrv As New RegistrationServices regsrv.RegisterAssembly(MyBase.GetType().Assembly, AssemblyRegistrationFlags.SetCodeBase) '--------- adding installation directory to stateSaver ---------- stateSaver.Add("myTargetDir", Context.Parameters("pDir").ToString) End Sub
公共覆盖子提交(BYVAL savedState作为System.Collections.IDictionary) MyBase.Commit(savedState) '' 的MessageBox.show( “萨拉姆”) 暗淡InstallAddress作为字符串= savedState( “myTargetDir”)。的ToString 暗淡REGKEY作为的RegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey( “软件\ pourab \ Sanjande”,真) regKey.SetValue( “InstalledFolder”,InstallAddress)
文章来源: Set InstallPath registry key using Visual Studio Setup project