状况描述:
打包安装后,如果删除安装目录中的某个文件,这时从桌面快捷方式启动软件系统会自动运行修复程序,此时因为路径问题会报出“错误
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);//读取安装包的配置文件
就可以了。