2009-06-26 70 views
11

我有一個使用ClickOnce部署的.NET Winforms應用程序(在VS2005中創建)。在其中一個表單上,我有一個用於查看報表的Crystal Reports查看器控件,但爲了在應用程序中使用它,我必須包括它們在安裝應用程序之前安裝的Crystal Reports XI Release 2 prereq。這基本上在用戶機器上安裝了一個淡化版的Crystal。使用Crystal Reports進行ClickOnce部署前提條件

它以這種方式發佈,但用戶不得不等待Crystal安裝,這對我來說是一個巨大的麻煩,因爲使用prereq發佈應用程序需要很長時間才能完成,因爲它必須將大的prereq上傳到服務器。

由於發佈需要很長時間和新安裝不超常見我一般不包括前提條件,當我發佈變更,而是隻有當一個新的安裝需要與前提條件發佈。

如果你使用ClickOnce發佈使用Crystal Reports的應用程序,這是你如何發佈,或是否有更簡單/更好的辦法。

有沒有一種方法可以包含/ GAC需要的CR dll,而不是包含和安裝Crystal Report prereq,或者有沒有一種方法可以將OneClick配置配置爲無需每次都複製文件。如果我可以配置ClickOnce部署,以便不必包含prereq,只需將安裝指向標準位置即可。

希望這有點清楚,有人可以幫忙。謝謝

+0

我也有這個問題,但我沒有找到一個好的解決方案,除了在安裝說明中包含一個鏈接到CR Redist msi。 – 2009-06-26 21:22:49

回答

3

從回覆看來,這似乎很常見,所以我現在只是發佈我所做的事情來解決問題。

首先,我會開始說我認爲布隆姆斯基的迴應應該有效,但是我過去在嘗試時還沒有取得成功。

我解決這個問題的方法就是使用ClickOnce將文件發佈到本地文件夾,然後手動將文件ftp排除在創建的crystalreport安裝目錄之外。

我知道這不是一個很好的答案,但我不必經常部署,所以這是我現在要解決的問題。請仔細閱讀所有其他答案,找出可能有助於解決問題的答案。

希望它有幫助。謝謝

0

從概念上講,你做的事情和我以前一樣。我做的不同之處是從構建服務器而不是我的機器部署它。坦率地說,我不在乎多久才部署,只要它不中斷我的機器。

我用CruiseControl.Net的建立,所以當是時候部署的發佈版本,我只想禁用CC編譯它,啓動發佈過程,並經過一段時間檢查。

0

.Net的Crystal 11.5合併模塊是錯誤的,並且在通過ClickOnce進行部署時引入了問題。

我們最終拋棄了ClickOnce並進行了自動提取器設置(Nullsoft Install System),並在客戶端PC上一次性安裝了Crystal Redist。

水晶是一場噩夢,你永遠無法'正確',但你可以緩解頭痛。

0

當我遇到這個問題時,我爲Crystal Reports創建了一個獨立的安裝程序,對我來說很合理,因爲我有很多使用它的程序。

這縮短了點擊一次部署,但系統沒有prequisite將與異常崩潰,所以當我一切都遷移到Visual Studio 2008和新的水晶報表,我開始,包括他們來代替。

它每次安裝和更新的時間需要更長的時間,但對我來說這是不值得的管理與prequisite易於部署的麻煩。

0

對不起,我不得不承認我有類似的問題,並最終提出了類似的任意解決方案。

我最終坐在兩個凳子之間,如果用戶不想在他們的機器上使用Crystal,我提供了一個選項來訪問Crystal服務器上託管的Web服務,因此這項工作可以遠程完成。如果他們有Crystal,那麼這項工作就是在當地完成的。

這並不完美,但至少它是合理的反應。

6

當您部署具有先決條件的ClickOnce應用程序時,您可以指定從本地或供應商(如Microsoft)下載先決條件的位置。如果您指定供應商,則它不會在您的部署軟件包中包含先決條件二進制文件。

如果Crystal未指定遠程位置,則始終可以使用Bootstrapper清單生成器來執行自己的先決條件。然後,您可以將Crystal二進制文件上載到部署服務器上的某個位置,使用新的二進制存儲庫作爲供應商站點創建自定義先決條件,在clickonce應用程序中添加自定義先決條件,並將其設置爲從供應商站點下載。

我相信在VS 2010中,您有第三個選擇ClickOnce的先決條件,您可以在其中定位特定站點,從而不需要您的自定義先決條件。

+0

不知何故,我錯過了這個答案,直到現在。也許我做了一些不正確的事情,但我試圖指定供應商網站,並從過去的特定位置無濟於事。我同意這應該起作用,但我沒有取得任何成功。我在特定位置框中輸入了將Crystal Report安裝到服務器上的位置,但它對我無效。我會加倍努力,因爲我認爲它也應該起作用,但我會爲我解決問題創建一個答案。謝謝 – Dusty 2009-12-15 17:47:12