2013-03-17 79 views
7

我正在開發一個應該授予特定開發人員計算機的類庫。沒有組件,因此無法完成設計時間許可檢查。在構建用於許可證檢查的.NET應用程序之前,從引用的類庫執行方法

該檢查實際上是不可用純類庫:

if(LicenseContext.UsageMode == LicenseUsageMode.Designtime) ... 

人提出使用Debugger.IsAttached以檢查lib是開發機上使用: Design-Time validation of library

但我在構建階段尋找解決方案,這樣如果許可證無效(例如,該機器未獲得許可證),程序將無法構建。有什麼建議麼?

+0

「這個檢查實際上對於純類庫不可用」。嗯,它是_available_(即它仍然是'System.dll'的一部分):-)這只是_meanless_我認爲,因爲'.UsageMode'將始終返回'LicenseUsageMode.RunTime',除非包含此檢查的方法從控件/組件的設計時代碼調用。 – Sepster 2013-03-24 19:51:09

+0

開發人員的應用程序的用戶是否可以(免費)使用該庫?在這種情況下,是否有任何東西阻止開發人員獲得免費版本的lib並針對該版本進行開發? +1順便說一下......我很想看看你得到了什麼迴應。 – Sepster 2013-03-24 20:06:14

+0

也許CodeContracts的一些變化會幫助你? – Daniil 2013-03-25 00:31:01

回答

1

我認爲在編譯/編譯時進行許可檢查是不可能的或非常困難的。在構建時,你很難強迫某些事情發生(如許可證檢查)。

關於許可請看Rhino Licensing。也許你可以製作一個沒有許可證檢查的混淆版本,以及一個帶有許可證檢查的正常版本。

但是任何許可證保護都可能被黑客入侵。

+0

我將使用IntelliLock並使用Debugger.IsAttached來檢查基於硬件的調試許可。 – 2013-03-31 18:01:49

相關問題