情況描述:
打包安裝後,若是刪除安裝目錄中的某個文件,這時從桌面快捷方式啓動軟件系統會自動運行修復程序,此時由於路徑問題會報出「錯誤 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);//讀取安裝包的配置文件
就能夠了。