首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

水晶報表 9 缺少 DLL 打包部署問題:依賴檔案收集與安裝合併模組

     編輯:程式設計綜合問答

Crystal Reports 9 (CR9) 專案打包部署時提示缺少 DLL,因 CR9 運行時元件眾多且版本敏感,單純複製 DLL 易遺漏依賴。標準解法:使用官方合併模組或安裝包專案自動收集。

核心依賴 DLL (常見缺失)

  • craxdrt.dll (設計時/運行時核心)
  • crviewer.dll (報表檢視器)
  • crpe32.dll (報表處理引擎)
  • p2smon.dll, p2bbmon.dll (資料庫驅動監控)
  • db2*.dll, oracle*.dll, sqlsrv*.dll (各資料庫驅動)
  • VC++ 運行時 (msvcr71.dll, msvcp71.dll 等)

解決方案一:Visual Studio 安裝包專案

  1. 方案新增 Setup Project (VDPROJ) 或 InstallShield Limited Edition。
  2. 加入專案輸出 (Primary Output),VS 會自動偵測 Crystal Reports 相依性並包含對應 Merge Modules (.msm):
    Crystal Database Access.msm
    Crystal Regwiz.msm
    Crystal Reports Runtime.msm 等。
  3. 建置生成 .msi,目標機執行安裝即自動註冊所有 DLL。

解決方案二:手動註冊 (不推薦生產環境)

regsvr32 craxdrt.dll
regsvr32 crviewer.dll
// 其餘 DLL 放入 System32/SysWOW64 或應用程式目錄

版本衝突避坑

  • 目標機若已安裝較新版 CR (如 CR2008/2011/2013/2016),DLL 版本不相容會導致「報表版本不匹配」錯誤。
  • 強制指定運行時版本:應用程式啟動時呼叫 CRAXDRT.Application 並設定 LogOnServer 等屬性。
  • 最佳:隨安裝包部署專用版本,或升級專案至較新 CR 版本。

資源獲取

CR9 年代久遠,官方下載已移除。可嘗試:

  • BusinessObjects / SAP 官網歷史版本頁面(需授權帳號)。
  • Visual Studio 2003/2005 安裝光碟中 Crystal Reports 目錄。
  • 網路搜尋 Crystal Reports 9 Merge Modules download(注意版權與病毒)。

現代專案建議遷移至 Crystal Reports for Visual Studio (SP 版) 或開源替代 (JasperReports, Stimulsoft, FastReport),獲得更好維護性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved