如题:最近的项目中,使用VS2010 制作成的安装包在安装后出现了一个奇怪的错误,桌面生成的快捷方式在双击后并没有启动主程序而是启动了安装包,遂在网上搜索,知道了一个解决方法,如下:
文章出处: http://charles2008.cnblogs.com/
刚刚开发完成的一个Winform项目,使用VS2008自带的打包工具对它进行打包(设置开始菜单的快捷方式),安装后,发现快捷方式的目标指向有问题。(winform程序的打包过程参见网络上的相关资源),这里我主要想说明打包后进行安装完毕后,快捷方式的指向问题。
1、打包后生成文件说明
我们都知道通过VS工具自带的打包后会生成两个文件,一个是exe文件,一个是msi文件。
需要说明的是msi文件时window installer开发出来的程序安装文件,它可以让你安装、修改、卸载你所安装的程序,也就是说VS工具打包生成的msi文件就是window installer的数据包,把所有和安装文件相关的内容封装在一个包里。VS工具打包生成的exe文件是主要是用于检查安装的环境,当安装的环境检查成功后,会自动再安装msi文件。当然可能会有exe文件也能直接安装的,但是开发exe的时候要比msi困难多,因为需要编写和安装、修改、卸载相关的很多内容,而msi把这些功能都集成化了,易于开发windows程序安装包。
2、 快捷方式指向说明
首先通过vs生成的exe检查环境通过后调用msi文件,安装完毕后,右键快捷方式的图片,发现一个比较奇怪的问题:如图
可以根据上图发现,快捷方式的"起始地址"和"目标"都不对,除此之外还有对于快捷方式还有以下的问题:
1、第一次点击快捷方式可以正常打开软件,但是当软件安装所在的文件夹下有文件更新或者删除时候,会出现进度条。(进度条达到100%后也能打开)。
2、把安装包msi文件删除后,再次点击快捷方式,则无法打开软件。(提示:无法访问安装包文件msi) 。
根据上面的现象,可以基本上确定两点:(1)快捷方式指向目标设置有问题。(2)快捷方式指向的是MSI文件。
至于提到的第一点:我测试发现我在程序启动时候把安装路径下的一个文件重命名或者删除,那么每次启动快捷方式都从msi文件重新安装到安装路径下,因此才会出现进度条的现象。
3、问题的解决
最后我又试了几次,以为是再程序打包的时候设置有问题,结果都没有找到原因,没有办法只有需求网络资源,网络上有朋友说VS创建的快捷方式不是标准的,是VS制作的安装包的问题,但是可以对VS制作的安装包msi文件进行修正。
具体修正步骤如下:
(1)下载工具orca工具(msi文件编辑工具) orcaMis
(2)安装orca后,用orca打开msi安装包,在左边的Table列表中找到Shourtcut表,在右边记录中找到桌面快捷方式的记录,修改该记录的Target属性为:
(3)保存修改后的msi文件,重新安装后生成的快捷方式就可以查找图片和更改图标了。