2010-06-15 66 views
4

背景信息:我已經設置了VS2008中的一個非常簡單的.NET解決方案包含足夠的代碼顯示在預覽窗口中的ActiveReports報告。 ActiveReports組件使用licenses.licx機制來決定它是否已被正確授權。如果找不到有效的許可證密鑰,它將在報告預覽中顯示一條重要消息,說明「這是一個評估版本,[等等等等]。」.NET的許可證編譯器(LC.EXE)似乎在一臺機器上忽略了licenses.licx的內容,但在另一臺機器上卻沒有。爲什麼?

我的問題:我有兩臺電腦,都安裝了VS2008和ActiveReports的相同版本。我已爲每個安裝獲得有效的許可證。現在,當我在一臺機器上構建我的解決方案時,我得到的報告預覽沒有評估標題消息,另一方面,完全相同的解決方案編譯爲將顯示評估消息的應用程序。

我到目前爲止已經發現:使用Reflector.NET我發現了第二臺計算機(其中顯示了評價信息)上,許可證編譯器(LC.EXE)不知何故似乎忽略的ActiveReports許可行licenses.licx。但它不會顯示任何錯誤或警告消息。

⇒所以,這個問題依然存在:在什麼情況下會LC.EXE決定忽略文本從licenses.licx時,它產生的輸出MyApplication.licenses嵌入式資源一條線嗎?


P.S:問題是通過刪除licenses.licx文件,然後讓它通過臨時增加了解決方案的虛擬報告重新解決。這個技巧是often mentioned針對類似的許可問題,但它在這裏不起作用。 licenses.licx文件內容似乎是有效的。

P.P.S .:不完全確定這是一個堆棧溢出問題還是一個超級用戶問題。

+0

我發現了一些技巧,這可能證明是有用的(會嘗試一些他們的明天):http://keyoti.com/kb/Default.aspx?ToDo=view&questId=76&catId=64 – stakx 2010-06-15 19:23:58

回答

3

OK –我不能肯定,但我懷疑這個問題的原因。

我懷疑LC.EXE將在編譯該文件時探測licenses.licx中列出的所有控件。如果在探測過程中,任何列出的控件都確定它沒有正確授權(無論出於何種原因;例如因爲許可證確實缺失或者由於安裝損壞),則許可證編譯器不會將實際的許可證密鑰發送給輸出資源流。


更新:幾個星期後,我仍然相信這是發生了什麼事。事實證明,許可失敗的一臺機器竟然有一個ActiveReports的損壞安裝。在運行刪除工具之後,ActiveReports得到了全新的安裝,並且現在許可證可以在兩臺機器上運行。

相關問題