采用.net 4.0框架开发的一个桌面应用程序在某学校的一体机(Windows7的32位操作系统)上做安装部署时抛出异常,安装程序回滚,多次尝试仍不成功。

Error 1001. 在初始化安装时发生异常 System.BadImageFormatException:未能加载文件或程序集”....“或它的某一个依赖项。

异常截图如下:

安装程序出现unable to open archive file 安装程序出现错误1001_应用程序

该程序在Windows7的64位操作系统环境下安装部署均正常,应用程序的生成目标平台为了兼容32位机器,选用的是X86

安装程序出现unable to open archive file 安装程序出现错误1001_应用程序_02

项目的安装工程的属性程序集配置如下:

安装程序出现unable to open archive file 安装程序出现错误1001_.net_03

项目安装工程的属性--系统必备如下:

安装程序出现unable to open archive file 安装程序出现错误1001_Windows_04

好了,就是这样了,生成的安装包在上面提到的一体机上安装抛出异常,在其他设备上安装正常;

 

下面就是我的解决方案了:

第一步:我们检查了机器的.net 4.0框架是否安装完整;我们将机器上的.net 4.0框架卸载了重新安装,再尝试安装异常依旧(排除了.net 4.0框架的问题);

第二步:我们检查了机器的Windows组件是否安装完整,打开机器的控制面板--程序--打开或关闭Windows功能,

安装程序出现unable to open archive file 安装程序出现错误1001_操作系统_05

我注意到用户机器上的Windows Process Activation Service组件没有安装,我将“.NET环境”选中,点击”确定“,等待系统安装该组件;

安装程序出现unable to open archive file 安装程序出现错误1001_.net_06

 

做完上面的步骤,似乎看到了曙光,以为已经解决了问题,可是重启机器后再尝试重新安装我们的应用程序,发现还是无法安装成功;异常提示依旧。

原来Windows process activation service Windows进程激活服务似乎和我们的windows桌面应用程序是否能正常运行无关,只是通过删除对 HTTP 的依赖关系,可统一 Internet 信息服务 (IIS) 进程模型。

此时,我们决定做个小测试,发现不仅我们的应用程序无法安装,用.net 2.0 和 3.5分别编写了一个简单的控制台小程序,在该机器上依旧不能运行;

几近崩溃啊!真是快崩溃了!

 

第三步:杀毒

     我们检查了一下用户机器的任务管理器,发现有一些不明程序在运行, 由于用户的一体机上没有安装杀毒软件,莫非是中了病毒造成的?于是,我们对用户机器进行了杀毒,一杀不要紧,竟然有376个文件感染了木马,查杀出了十几个木马,杀毒的过程当时忘记截图了,就不上图了;

     杀毒完成,重启机器后,我们再尝试安装我们的应用程序,这次竟然成功了,成功了!