2009-11-08 56 views
5

我相信用.NET程序部署Crystal Report的傳統方式是將其設置爲發佈設置中的先決條件,然後.msi將與ClickOnce文件在網絡/網絡/ CD/wtv上。當用戶運行setup.exe時,它將檢查Crystal Report是否在客戶端計算機上。如果不是,則運行Crystal Report .msi。但是這總是需要管理員權限。部署Crystal Report dll只使用ClickOnce而不使用先決條件.msi

我的問題是,是否有可能將Crystal Report的dll與其他應用程序的輸出程序集一起打包,以便不需要顯式安裝?我的應用程序使用了許多許多組件,包括一個dll,安裝它們大部分都是足夠的。我可以用Crystal Report做同樣的事嗎?

+0

嗨,我面臨同樣的問題,你有沒有想過辦法做到這一點? – matao 2011-06-23 08:24:51

回答

2

如果您自己設置了自己,您可以監視Crystal Reports運行時的安裝以查看它創建/修改的文件/註冊表項/設置。或者,您可以反編譯msi或從Crystal Reports下載並反編譯mst轉換文件。一旦你知道它在做什麼,寫一些東西來自己做。

4

我討厭成爲壞消息的持有者,但Crystal Reports for Visual Studio .NET不適用於一次性部署。 Crystal Reports是一個本地應用程序,用於處理報告的程序集依賴於許多非.NET庫。

許多需要註冊的COM對象,支持必須安裝的DLL ......必須放置在某處的許可信息(Crystal Reports在許可方面一直很重要)。從理論上講,如果您的應用程序運行完全信任,您可以監視Crystal Reports for .NET運行時的安裝,並將其複製到C#中,但這是很多工作,並且最多也是不可靠的。

不幸的是,最終的答案是你不能。

您可能會檢查Active Reports或其他一些純.NET報告解決方案。

+0

感謝您的回答。然而,只是想知道。我的應用程序目前通過ClickOnce部署了一堆dll。他們大多數不太漂亮。很多COM的東西,其中一些非常重。除Crystal Report外,其他一切看起來都很好。我的其他3款第三方產品也需要許可(DotNetBar,DevXpress和FarPoint)。我理論上可以用Crystal Report做同樣的事情,並通過dll通過ClickOnce傳遞嗎? – xster 2009-11-08 07:26:13

0

我幾乎可以肯定的是,當您購買時(不確定此包是否隨附Visual Studio版本),有一個隨Crystal Reports的最終版本一起提供的庫的可再發行組件包。

+0

嗨,但我認爲可再發行組件是一個需要管理員權限才能安裝的.msi。我的意圖是讓用戶通過ClickOnce軟件包獲取我的軟件,並在沒有管理員的情況下安裝本地需要的所有軟件。 – xster 2009-11-14 21:04:20

+0

@Xster - 「沒有管理員」意味着您的ClickOnce應用**非常有限**,無法做到(例如網絡訪問,文件訪問)。 – 2009-12-16 21:55:44

0

我會提供一個單獨的鏈接到安裝站點上的Crystal Redistributable,並在ClickOnce應用程序中檢查是否存在Crystal文件。