.net安装部署“Error 1001 在初始化安装时发生异常” 的解决方法

状况描述:
打包安装后,如果删除安装目录中的某个文件,这时从桌面快捷方式启动软件系统会自动运行修复程序,此时因为路径问题会报出“错误 1001 在初始化安装时发生异常xxx”的异常。(前提是你的安装部署中加入了“自定义操作”,并为其传值)。

查找原因原来是“自定义操作”中CustomActionData值有误造成。未出错前的CustomActionData。

/DbName=[DBNAME] /ServerName=[SERVERNAME] /User=[USER] /Password=[PASSWORD] /SetupType=[SETUPTYPE]

解决方法:

分别在两个双引号旁边增加单引号。
需要修改 CUStomActionData 的传值方式,由以前的 /key="[value]\" 改为  /key=“'[value]\'"。
例如: /sourceDir="'[SourceDir]\'" /InstallDir="'[TARGETDIR]\'" /InstallName="Monitor"

这样在安装类中得到的参数会多出俩个'',例如 ‘c:\a\b’,这时需要手工处理一下。这样问题解决了。

如果卸载安装包报错:“初始化安装时发生异常,找不到**文件”,有可能是安装程序代码位置错误。

如:

string settxtPath = setupSourcePath + "set.txt";

dataList = getSetConfig(settxtPath);//读取安装包的配置文件

base.Install(stateSaver);

因为在安装和卸载时,会自动运行修复程序,所以在base.Install(stateSaver)前的代码都要执行,所以卸载导致报错:“找不到set.txt”。

修改为:

string settxtPath = setupSourcePath + "set.txt";
base.Install(stateSaver);

dataList = getSetConfig(settxtPath);//读取安装包的配置文件

就可以了。

上一篇:使用XmlInclude解决WebService调用时无法识别子类的异常


下一篇:解决linux-mysql 登录时,报异常:Access denied for user 'root'@'localhost'