注册 登录
编程论坛 VB.NET论坛

Installshield打包的问题

xiangyue0510 发布于 2016-04-06 09:44, 7052 次点击
VB2015 + Installshield Limited Edition 2015
但是打包的时候,无法扫描出引用项。请问一下大神如何操作?
只有本站会员才能查看附件,请 登录
12 回复
#2
不说也罢2016-04-06 16:58
一个一个添加吧。把程序运行所需要的支持文件统统打包进去。项目属性里引用的DLL文件,工具箱里的第三方OCX文件,及程序所需的自编的数据文件等。Installshield太大,从没用过。你以前不是用过SF的吗,挺好用的啊。记得把.net框架安装文件打进安装包。有的客户机上没有安装过framework。另外 还需注意你.net开发的framework版本
自带的打包工具也不错啊。
#3
xiangyue05102016-04-06 19:58
我用advanced installer试了一下,可以扫描,但是没有用。
你说的frame work,我另外下载了装上,但是安装好运行保错,那个电脑在单位明天截图给版主看一下。
#4
xiangyue05102016-04-07 09:15
求大神伸出援手
第一张图是install shield中的设置,已经按照advanced installer扫描出来的手动把dll文件加进来了
只有本站会员才能查看附件,请 登录


第二张图是在虚拟机上实验的时候报错信息。已经手动安装了framework4.5.2
只有本站会员才能查看附件,请 登录
#5
不说也罢2016-04-07 11:44
开发环境的操作系统是32位还是64位?
虚拟环境呢?
在目标机器是XP的环境下有没有安装运行试试?
许多人在开发环境中没有设置这些参数,导致安装到64位的目标操作系统中运行出错。
#6
不说也罢2016-04-07 11:51
要注意程序加载相对路径文件夹下文件的返回值,就是application.startuppath & "...."这些返回值与安装后的对应值是否匹配
#7
xiangyue05102016-04-07 13:12
以下是引用不说也罢在2016-4-7 11:44:50的发言:

开发环境的操作系统是32位还是64位?
虚拟环境呢?
在目标机器是XP的环境下有没有安装运行试试?
许多人在开发环境中没有设置这些参数,导致安装到64位的目标操作系统中运行出错。

我的电脑是WIN10 64, VB中设置的是ANY,也尝试过改成86。没有效果
虚拟机是WIN7 64,
你提到的Application.startuppath在打包之后如何查看呢?运行的时候是可以的。

我感觉还是没有DLL之类注册成功。我把启动窗口改为另外一个简单的窗体之后,运行报错如图
只有本站会员才能查看附件,请 登录

后缀修改为txt即可
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2016-4-7 13:17编辑过]

#8
不说也罢2016-04-07 13:52
打包前,手工检查下每个Dll文件是否支持自动注册,或者制作个批处理文件注册,在安装后调用批处理文件。或者把每个Dll文件安装到主程序所在的目录下试试;安装时用管理员身份运行......
有的第三方的Dll的确需要手动注册,尤其是在64位系统下。我常把Dll放在主程序目录下。
#9
xiangyue05102016-04-07 21:11
回复 8楼 不说也罢
好的,我明天试一下
#10
xiangyue05102016-04-08 10:05
我尝试着手动注册DLL,但是都没有成功,提示是“**.dll”已加载,但找不到入口点DLLRegisterServer。
安装目录下试过,拷贝到Windows/Systems下也试过。 程序运行的时候还是报错。
#11
不说也罢2016-04-08 10:45
看你截图中,那个TV36D5.dll是第三方的DLL,找不到入口点DLLRegisterServer,估计缺少运行支持文件(因为你开发时没有问题)
打开项目,查看My Project属性,看看到底引用了哪些文件,然后再一一排查。
再弱弱地问下,不在虚拟机上可以安装成功么?
#12
xiangyue05102016-04-08 22:53
回复 11楼 不说也罢
不光是TV3D,其他的也是无入口,很奇怪。
你说的非虚拟机,我还真没有想过,一个是其他软件在虚拟机上都是正常的,第二不是虚拟机的都在用,要和别人抢
下周我去抢台机器来试试看
#13
xiangyue05102016-04-12 17:06
终于搞明白了。创建Install Shield项目的时候必须要选择“添加到解决方案 ”,之前是创建一个新的解决方案。
这样就可以顺利的添加Project Output, DLL注册也不是问题了
居然一直没注意到这个细节
好嗨皮啊
1