最新一直在用DevExpress的控件,之前用12.1.6,目前换成13.1.5
用DevExpress的一个很痛苦的地方就是 要引用的DLL非常多,如果全部放在程序根目录下感觉很不雅观,所以一直想把他丢到assembly目录下面
以前用的方式是利用WINRAR的自解压程序实现,感觉有点不专业。现在直接做成EXE可执行文件
下面就简单记录一下利用InnoSetup生成环境安装包的过程
准备工具:
1、innosetup (我用的是5.5.2)
2、DevExpress主要DLL文件(默认路径:C:\Program Files (x86)\DevExpress\DXperience 13.1\Bin\Framework 这是WIN7 64位的路径)
开始:
1、制作Register.bat批处理文件
文件内容如下:
@echo off
color 1e
title 注册DEV控件
set "pathdev=%~dp0"
gacutil -u "DevExpress.BonusSkins.v13.1"
mkdir %windir%\assembly\GAC_MSIL\DevExpress.BonusSkins.v13.1\13.1.5.0__b88d1754d700e49a
copy %pathdev%DevExpress.BonusSkins.v13.1.dll %windir%\assembly\GAC_MSIL\DevExpress.BonusSkins.v13.1\13.1.5.0__b88d1754d700e49a
echo 'OK'
简单解释:
color 1e 设置背景色
title 注册DEV控件 设置标题
set "pathdev=%~dp0" Register.bat文件目录
gacutil -u "DevExpress.BonusSkins.v13.1"取消注册
mkdir %windir%\assembly\GAC_MSIL\DevExpress.BonusSkins.v13.1\13.1.5.0__b88d1754d700e49a创建文件夹
copy %pathdev%DevExpress.BonusSkins.v13.1.dll %windir%\assembly\GAC_MSIL\DevExpress.BonusSkins.v13.1\13.1.5.0__b88d1754d700e49a复制文件到新生成的文件夹中
echo 'OK'执行完成后退出
如有多个DLL,可以循环gacutil那一段
写完后直接保存成Register.bat文件
2、写个程序调用Register.bat
当然最好是直接写控制台程序,Main方法中一句代码搞定
Process.Start(Application.StartupPath + @"\Register.bat");
3、利用innosetup制作安装包
A、文件→新建→直接下一步
B、填好信息后下一步
C、自己定义,安装程序默认路径
上面选择刚写好的控制台程序,EXE文件 下面点 [添加文件] 加入必须的DLL文件, 这里特别要注意, 需要加入 gacutil.exe 和 msvcr70.dll
这两个文件是必须的
D、后面基本上不用改,有兴趣可以自己试下
结果:
运行它:
建议:
如果要加入的DLL太多,可以写个小程序,动态构成一下字符串,到时直接复制出来就可以了
下面附上一些用到的东西
图挂了,还是附上文件下载地址吧
http://download.youkuaiyun.com/detail/jimk5200/6517803