錯誤現象
安裝程式啟動不久彈出錯誤:
在創建窗口句柄之前不能在控件上調用 Invoke 或 BeginInvoke

根因分析
防毒軟體(360、瑞星、卡巴斯基等)即時掃描攔截安裝程式解壓縮的暫存檔案,導致 UI 執行緒在視窗句柄建立前被阻塞,觸發跨執行緒呼叫例外。
解決步驟
- 暫時停用防毒軟體(含即時掃描、行為監控),或將安裝源目錄加入信任區。
- 重新解壓縮安裝媒體到新資料夾(如
D:\SQL2008_Setup\),避免原壓縮檔受損或被隔離。
- 建立乾淨的工作目錄(如
D:\SQL2008_Work\),將解壓縮內容**複製**(非移動)至此。
- 以系統管理員身分執行 Setup.exe,並在安裝精靈的「安裝選項」頁面,將 安裝檔案路徑 指向工作目錄
D:\SQL2008_Work\。
- 依序完成安裝,過程中保持防毒軟體關閉;安裝完成後重新啟用防毒並掃描安裝目錄。
進階排查(若上述無效)
- 檢查
%TEMP%、%TMP% 環境變數指向的磁碟空間是否充足(> 10 GB)。
- 確認 .NET Framework 3.5 SP1 已安裝(SQL 2008 必備元件)。
- 查看安裝日誌:
%ProgramFiles%\Microsoft SQL Server\100\Setup Bootstrap\Log\ 下最新資料夾的 Detail.txt。
- 若為叢集安裝,確保所有節點均已停用防毒並具備相同權限。
最佳實務建議
- 生產環境部署前,先在測試機完整走一次安裝流程。
- 使用 ConfigurationFile.ini 進行無人值守安裝,減少 UI 互動失敗機率。
- 維護標準化安裝媒體庫(ISO + 校驗碼),避免網路下載檔案不完整。