很好的链接:原 VS2017自带打包软件
解决应用程序打开文件位置无法定位到安装目录的问题。
InstallShield的离线安装与激活使用
一、安装InstallShield Limited Edition for Visual Studio,一般到要到官网注册一个账号。然后其会发邮件给你,其中包括软件的安装包跟序列码。这两个是一一对应的,如果是使用了别人的安装包,则这个序列码是无法激活installShield的。
二、这两天做项目,需要对已经做好的软件进行打包,网上搜了一下,发现visual studio 2013具有自带的打包软件功能,是visual studio自带的一款插件InstallShield 2013 Limited Edition for Visual Studio,通过这个插件可以对项目进行发布。所以在这里写一个打包软件的图文教程吧。
首先,visual studio 2013默认情况下应该是没有安装InstallShield(也可能初始安装VS的时候我没有安装),所以需要去注册下载InstallShield,InstallShield的官网是:
http://learn.flexerasoftware.com/content/IS-EVAL-InstallShield-Limited-Edition-Visual-Studio
现在的最新版本应该是InstallShield 2015,按照网站说明注册安装即可。
也可以这样安装:
1、打开VS2013,文件-新建-项目-已安装-模板-其他项目类型-安装和部署-启用InstallShield Limited Edition。
2、根据提示操作,点击步骤2的“转到下载网站”。
3、填写相关信息后,点击Download下载InstallShield,同时注册邮箱会收到一封邮件,里面有 序列号 和下载链接。
4、退出VS,使用管理员权限重新打开VS,在文件-新建-项目-已安装-模板-其他项目类型-安装和部署中则可以看到InstallShield Limited Edition Project,点击确定,会弹出注册对话框,输入注册邮箱中收到的 序列号 即可完成注册。
下面介绍一下打包发布软件的教程:
一、安装好InstallShield插件后,打开VS 2013;
鼠标点击:文件-》新建-》项目-》已安装-》其他项目类型-》安装和部署,看到以下图片:
点击第一个选项(新安装的InstallShield插件),设置好名字(这里是TestInstallShield),点击确定:
Project Assistant界面如下:
二、打包过程按照Project Assistant的引导界面从左往右操作就好了:
(一)Application Information:
Application Information 中填写公司名称、产品名称、版本号、网址的信息。
Application Information 左侧窗口点击 General Information:
(1)General -> Setup Language:设置安装语言
(2)General -> INSTALLDIR:设置安装路径
(3)General -> Fast Install:根据需要配置以便加速安装速度
a、No system restore point is saved for this installation:没有为这个程序保存系统恢复点
b、Perform only File Costing and skip checking other costs:仅执行文件花费和跳过检查其他成本
c、Reduce the frequency of progress messages:降低进度条信息的频率
(4)Summary Information Stream -> Require Administrative Privileges:设置管理员权限
将该项设为“Yes”。这样设置之后,用户就可以有管理员的权限去安装该安装文件了,避免用户
在安装的时候出现权限不够的问题。
(5)Add or Remove Programs -> Disable Change Button, Disable Remove Button, Disabl
e Repair Button,这三个至少要有一个选为“NO”,全部设为“YES”的话,则在控制面板中,对应的软
件没有“更改/删除”的按钮可以点击,即在这里就卸载不了软件了。
(二)Installation Requirements:选择程序运行的操作系统及需要的软件
可选的软件有Adobe Reader、.NET Framework、IE、Office等
(三)Application Files:添加要打包的文件
Destination Computer:右键 Show Predefined Folder 可选择需要的文件夹,例如Font文件夹,将字体文件加入该文件
夹,安装时会自动安装字体。
添加完文件后,全选文件,右击,选中“Always Overwrite”。否则有时会出现重新安装后,有些文件没有被覆盖。
(InstallShield Limited edition没有这项权限)
添加完文件后,还需要添加C:\Windows\System32\msiexec.exe,用于添加卸载程序的快捷方式。
(四)Application Shortcuts:创建桌面和开始菜单的快捷方式
点击左侧的Shortcuts,可配置快捷方式的属性信息。
卸载程序的快捷方式设置参数以实现卸载功能:Behavior -> Argument 设置为“/x {Product Code}”
(五)Application Registry:添加注册表
(六)Installation Interview:配置安装界面
Do you want to display a License Agreement Dialog:
配置License界面
Do you want to prompt users to enter their Company Name and User Name:
配置是否展示输入公司名称和用户名称的界面
Do you want your uses to be able to modify the installation location:
配置用户是否可以修改安装路径(这个一般是要勾选的,否则无法更改安装路径)
Do you want users to be able to selectively install only certain parts:
配置用户是否可以选择安装的模块
Do you want to give users the option to launch your application when the installation:
配置用户是否可以在安装结束后选择启动应用程序
点击左侧的 Dialogs 可详细配置安装界面是否显示及具体内容。
(七)将需要的其他工具一起打包到安装程序中:
解决方案中 Specify Application Data -> Redistributables 可选择要打包的程序
这里要打包的程序大部分是VC和Windows自带的程序:
解决方案中 Specify Application Data -> Files 可选择要打包的文件,可以把需要的打包的
文件放进去
(八)设置安装程序的生成路径及方式:(这种方式也是把文件的运行环境也自动打包到一个安装包里)
解决方案中 Prepare for Release -> Releases
CD-ROM:可生成 msi、exe 安装包。
若Build -> Compression的值为UnCompressed,则完整的安装程序为program files文件夹+msi文件。
若Build -> Compression的值为Compressed,则完整的安装程序为cab文件+msi文件。
SingleImage:只能生成 exe 安装包,也可配置Build -> Compression。(一般是选这个模式生产exe安装包)
CD-ROM 或 SingleImage 中选择 Setup.exe -> InstallShield Prerequisites Location,设置为 Extract
From Setup.exe
安装程序的生成路径为:\Express\CD_ROM\DiskImages\DISK1
或 \Express\SingleImage\DiskImages\DISK1
可在VS上方的工具栏中选择生成方式。
(九)这里SingeImage只生成一个EXE,我们的软件就选择这种方式(比较方便)。
发布时,直接拷贝EXE文件就可以了。
(十)生成的快捷方式定位到安装目录:
只是通过上面的生成快捷方法生成的应用程序时无法定位到文件安装目录,但是可以通过其打开应用程序。上面生成的logo右上角会出现两个箭头。如下面所示:
证明这个快捷方法不太对,这个时属于打包软件自己配置的。下面时生成正确的方法:
点击下图位置:
其会列出生成的快捷方式的生成位置,其如下:
接着在对应的快捷图右键选择“New Shortcut”来生成可以定位到安装目录的快捷图。这个新的快捷干旧的一样的名称即可。对应的为:
既可完成。安装后桌面只会出现一个会计方法。
(十一)生成的应用程序设置其工作目录:
如果没有设置这个工作目录,则应用程序的的一些保持到本地工作目录下的文件则会保存到桌面上。其设置位置为Working Directory,如下:
(十二)设置保持数据到C盘的AppData目录下:
如果打包的应用程序不把保存跟读取数据保存到C盘的数据文件夹下,则当应用程序安装到C盘的【Program Files(x86)】文件下,及默认安装路径下时则会报错,报无访问权限。
一般常规的打包方法也是要把数据文件跟运行文件分别设置到不同目录下。
其设置位置是【AppDataFolder】目录下,其指的是在C#的数据文件目录下要放的数据。其目录一般是:
【C:\Users\yangdeshi\AppData\Roaming】系统默认目录下放置【data】文件夹。所以在C#界面开发的时候就需要把文件路径也设置到这个目录下。其中C#获取这个路径的代码是:
public static string appdata = System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
此时打包好的exe就不会出现无法访问的错误了。
以上图文教程参考
http://www.cnblogs.com/hibernation/p/3759332.html
有问题或意见大家可以给我留言,共同进步。