1

我們有一個VB.Net Winforms(x86)應用程序,它使用Crystal Reports的可自由再發行版本。儘管應用程序在我的測試機器上正常工作,但在客戶端機器上安裝並嘗試從應用程序打印報告時,出現以下錯誤:系統找不到指定的文件。文件名:顯示CrystalDecisions.CrystalReports.Engine ...。如何安裝Crystal Reports for .NET 3.5 Winforms應用程序

inno-setup包含客戶端在安裝過程中安裝的CR可再發行「CRRedist2008_x86.msi」。 (我們也嘗試運行「CRRedist2008_x64.msi」,但收到「不支持的處理器類型」錯誤)。

我已閱讀有關.NET 1/2(VS 2002/2005)的先決條件的合併模塊,但無法找到任何與.NET 3.5有關的有用信息,因此想知道這些文件是否仍然需要以及如何打包並在實際需要時部署它們。

有關如何解決此安裝問題的任何指導,我們都非常感謝。

編輯 的匯創設置包含以下命令檢查,看看是否安裝了CR,如果不是MSI從最後的安裝形式推出:

[Run] 
Filename: "{app}\CRRedist2008_x86.msi"; Description: "Crystal Reports"; Flags: nowait postinstall skipifsilent; Check: EnsureCrystalReports105Installed(); 
+0

您目前如何從安裝腳本運行重新啓動MSI? – Miral 2013-04-24 23:47:51

+0

我已經修改了我的問題以包含用於啓動MSI的Inno-Setup代碼。 – 2013-04-25 00:25:04

+0

我已經稍微編輯它以使其更具可讀性。 – Miral 2013-04-26 02:21:12

回答

0

的問題是,你是沒有實際執行MSI文件。您可以通過運行安裝程序/LOG並查看生成的日誌文件來查看。

這是因爲MSI文件不能直接執行 - 它們是數據文件,而不是程序。

要解決此問題,您需要運行msiexec,而不是將MSI文件作爲參數傳遞;例如。

[Run] 
Filename: {sys}\msiexec.exe; Parameters: "/i ""{app}\CRRedist2008_x86.msi"""; ... 

你應該審查MSIEXEC和MSI文件接受,看看你想要做一些不同的,例如性能接受了命令行參數。以交互方式靜默運行安裝。

另外,如果此組件對於您的應用程序是可選的,並且它可以優雅地處理它未安裝的情況,那麼將它作爲postinstall運行會很好。如果情況並非如此,那麼您應該將其視爲先決條件,並始終通過PrepareToInstall進行安裝。

相關問題