100分 C#安装包升级制作问题请教

lmjob 2009-04-16 03:40:56
我现在用vs2005 安装部署一个mysql安装包,现在想对该安装包做升级包

现在新安装包要根据已安装的版本号来更新相应数据库,
如果ProductCode不改变的话,如果重新双击安装包进行安装,系统则提示“已安装该产品的另一个版本”

后面经过google查到了说,把Version属性改变版本号,然后再改变ProductCode,但安装后
在添加删除程序里多出一个安装记录,相当于是另一个产品,把removepreviousversions属性设为true后,在点击新安装包重新安装后自动把以前的版本悄悄的卸载掉了(所有目录包括数据库文件全部移除了)
所以也没办法检测前一个到底是哪个版本,所有的数据文件也丢了,郁闷中……,感觉.NET打包机制太笨了!

急求:.NET安装包的升级机制,
有没有保持ProductCode不变,只改变Version或UpgradeCode来实现升级,并且以前版本存在的文件不自动覆盖
在线等待中……

别告诉我用InstallShare12来做安装程序,因为现在时间来不急了,产品明天就要交货了!
...全文
378 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sciolist 2009-04-16
  • 打赏
  • 举报
回复
不会,帮顶 随便 学习
wanabe 2009-04-16
  • 打赏
  • 举报
回复
up
bulong0721 2009-04-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lmjob 的回复:]
引用 2 楼 bulong0721 的回复:
1,removepreviousversions属性设为true
2,修改版本号(版本号记得大于1.0.0否则会有问题)ProductCode跟着变
3,保证UpgradeCode不变,以上是保证能正常更新以前版本
4,转到文件视图将文件的permanent属性设置为TRUE,表示该文件在软件卸载时不被删除



对于“4,转到文件视图将文件的permanent属性设置为TRUE,表示该文件在软件卸载时不被删除”
我测试过了,只是在程序菜单或添加删除…
[/Quote]
那还有一种办法,将你需要不被删除的文件打包,在程序安装好后自动解开(添加custom action),因为这些文件不受安装程序控制是不会被删除的。
lmjob 2009-04-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bulong0721 的回复:]
1,removepreviousversions属性设为true
2,修改版本号(版本号记得大于1.0.0否则会有问题)ProductCode跟着变
3,保证UpgradeCode不变,以上是保证能正常更新以前版本
4,转到文件视图将文件的permanent属性设置为TRUE,表示该文件在软件卸载时不被删除
[/Quote]


对于“4,转到文件视图将文件的permanent属性设置为TRUE,表示该文件在软件卸载时不被删除”
我测试过了,只是在程序菜单或添加删除时卸载时才不被删除,如果removepreviousversions属性设为true时的卸载还是照样删除

所以这地方比较郁闷……,继续关注中!
热学沸腾56 2009-04-16
  • 打赏
  • 举报
回复
up,mark
bulong0721 2009-04-16
  • 打赏
  • 举报
回复
1,removepreviousversions属性设为true
2,修改版本号(版本号记得大于1.0.0否则会有问题)ProductCode跟着变
3,保证UpgradeCode不变,以上是保证能正常更新以前版本
4,转到文件视图将文件的permanent属性设置为TRUE,表示该文件在软件卸载时不被删除
itcrazyman 2009-04-16
  • 打赏
  • 举报
回复
mark up 帮顶

111,126

社区成员

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

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

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