情况描述:
打包安装后,若是删除安装目录中的某个文件,这时从桌面快捷方式启动软件系统会自动运行修复程序,此时由于路径问题会报出“错误 1001 在初始化安装时发生异常xxx”的异常。(前提是你的安装部署中加入了“自定义操做”,并为其传值)。spa
查找缘由原来是“自定义操做”中CustomActionData值有误形成。未出错前的CustomActionData。 部署
/DbName=[DBNAME] /ServerName=[SERVERNAME] /User=[USER] /Password=[PASSWORD] /SetupType=[SETUPTYPE] get
解决方法:string
分别在两个双引号旁边增长单引号。
须要修改 CUStomActionData 的传值方式,由之前的 /key="[value]\" 改成 /key=“'[value]\'"。
例如: /sourceDir="'[SourceDir]\'" /InstallDir="'[TARGETDIR]\'" /InstallName="Monitor"
这样在安装类中获得的参数会多出俩个'',例如 ‘c:\a\b’,这时须要手工处理一下。这样问题解决了。it
若是卸载安装包报错:“初始化安装时发生异常,找不到**文件”,有多是安装程序代码位置错误。io
如:打包
string settxtPath = setupSourcePath + "set.txt";软件
dataList = getSetConfig(settxtPath);//读取安装包的配置文件配置
base.Install(stateSaver);List
由于在安装和卸载时,会自动运行修复程序,因此在base.Install(stateSaver)前的代码都要执行,因此卸载致使报错:“找不到set.txt”。
修改成:
string settxtPath = setupSourcePath + "set.txt";
base.Install(stateSaver);
dataList = getSetConfig(settxtPath);//读取安装包的配置文件
就能够了。