VS打包程序制作的快捷方式指向错误的位置(指向安装包文件) 导致每次启动都要windows正在配置

Posted sexycrane

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS打包程序制作的快捷方式指向错误的位置(指向安装包文件) 导致每次启动都要windows正在配置相关的知识,希望对你有一定的参考价值。

刚刚开发完成的一个WPF项目,使用VS2010自带的打包工具对它进行打包(设置开始菜单的快捷方式),安装后,发现快捷方式的目标指向有问题。这里我主要想说明打包后进行安装完毕后,快捷方式的指向问题。

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属性为

[TARGETDIR]应用程序名称.exe

(3)保存修改后的msi文件,重新安装后生成的快捷方式就可以查找图片和更改图标了。

技术图片 

 

原文转至:https://blog.csdn.net/yuwuzhi1989/article/details/18085231

以上是关于VS打包程序制作的快捷方式指向错误的位置(指向安装包文件) 导致每次启动都要windows正在配置的主要内容,如果未能解决你的问题,请参考以下文章

Perl 如何查看 Windows 快捷方式指向的位置?

解决Quick-lua在window上player3的快捷方式指向一个不存在的位置的问题

vs2013 用啥制作安装程序打包部署

VS中,出现这样的问题: 由于缺少调试目标,无法开始调试,请生成项目并重试,使其指向目标程序集的正确位置,

您如何使 Android“主页”快捷方式绕过它指向的应用程序的历史记录?

inno setup将 exe文件和.NETFramework如何一起打包