.NET 打包问题 获取旧版安装路径??

secmoo 2008-07-11 10:53:47
简单点,就是升级安装时,使用旧版安装路径作为默认路径...
如果是全新安装就使用 [ProgramFilesFolder][Manufacturer]\[ProductName]
也就是动态设置文件系统的 DefaultLocation 属性.

我的做法是:
1.第一次安装的时候,将[TARGETDIR]写入注册表... (方法如下)
* 右键点击安装项目->视图->注册表: HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE\Software\[Manufacturer]\
* 新建->字符串: (Name): InstallLocation-> (Value): [TARGETDIR]
2.升级安装时,读取注册表信息,将信息作为默认安装路径... (方法如下)
* 右键点击安装项目->视图->启动条件->搜索目标计算机->右键->添加注册表搜索
* 设置属性:
(Property): REGPATH
(RegKey): Software\[Manufacturer]
(Root): vsdrrHKLM
(Value): InstallLocation
* 右键点击安装项目->视图->文件系统->应用程序文件夹
* 设置属性: (DefaultLocation): [REGPATH]

这样设置,升级安装时都能将旧版安装路径作为默认路径,
不过第一次安装就读不到 REGPATH 值了,默认路径会显示为安装程序所在的盘符,如 E:\

我想要实现的效果是,首次安装,默认路径为: [ProgramFilesFolder][Manufacturer]\[ProductName]
升级安装,默认路径为,旧版安装路径,请问有什么好方法...

还有一个问题,我在其他地方看到:
VS自带的打包工具会自动将安装路径写入:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\[ProductCode]\InstallLocation
但我做的安装包,安装后该键值都是空的...为什么?

PS: 刚注册的帐号,第一帖,分不多...


...全文
236 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ojekleen 2008-07-14
  • 打赏
  • 举报
回复
mark
yilanwuyu123 2008-07-14
  • 打赏
  • 举报
回复
一般最好不要操作注册表

旧版的安装路径可以通过搜索文件的模式得到

如果没找到 就谈对话框设置

如果找到了就默认这个路径 替换原来的文件

替换的时候会报很多是否覆盖之类的。

楼主做好这方面准备工作吧。
格拉 2008-07-14
  • 打赏
  • 举报
回复
你绕圈子了吧?
secmoo 2008-07-11
  • 打赏
  • 举报
回复
郁闷...没人会吗?
secmoo 2008-07-11
  • 打赏
  • 举报
回复
...昨天忙一天也没能解决...急用啊
要能在VS自带的打包程序下实现的方法...

UP
secmoo 2008-07-11
  • 打赏
  • 举报
回复
没人注意,自己UP...

110,892

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧