2013-03-17 31 views
7

Belirli geliştirici bilgisayarlara lisanslanması gereken bir sınıf kitaplığı geliştiriyorum. Tasarım zamanı lisanslama kontrollerinin yapılamayacağı bir bileşen yoktur.başvurulan sınıf kitaplığından yürütme yöntemini çalıştırmadan önce lisans denetimi için .NET uygulaması

Bu kontrol saf sınıf kitaplıkları için aslında kullanılamaz: Design-Time validation of library

Ama:

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

Bir lib geliştirici makinesinde kullanılması durumunda kontrol etmek Debugger.IsAttached kullanmak önerdi Yapılandırma aşamasında bir çözüm arıyorum, böylece lisans geçersiz ise program oluşturulmaz (eG bu makine lisanslı değildir). Baska öneri?

+0

"Bu denetim aslında saf sınıf kitaplıkları için kullanılamıyor". Eh, bu _available_ (yani hala 'System.dll' nin bir parçası) :-) Bu sadece bir _meaningless_ sanırım, bu denetimi içeren bir yöntem (lib'inizde) sürece .UsageMode 'her zaman' LicenseUsageMode.RunTime 'dönecektir Bir kontrol/bileşenin tasarım zamanı kodundan çağrılır. – Sepster

+0

Lib, geliştiricilerin uygulamasının tüketicileri için serbestçe kullanılabilir mi? Bu durumda, geliştiriciyi, lib'in ücretsiz bir sürümünü elde etmekten ve buna karşı geliştirmekten vazgeçen bir şey var mı? Bu arada +1 ... Yanıtları aldığınızı görmek istiyorum. – Sepster

+0

Belki CodeContracts ile bazı varyasyonlar size yardımcı olacak? – Daniil

cevap

1

Derleme/oluşturma zamanında lisans denetimi yapmak imkansız veya çok zor olduğunu düşünüyorum. Oluşturulma zamanında bir şeyin gerçekleşmesini (lisans kontrolü gibi) zorlaştırmanız zordur.

Lisans için Rhino Licensing'a bakın. Belki lisans kontrolü olmadan gizlenmiş bir sürüm ve lisans kontrolü ile normal bir sürümünü yapabilirsiniz.

Ancak herhangi bir lisans koruması kesilebilir.

+0

IntelliLock kullanacak ve hata ayıklamada donanım tabanlı lisansları kontrol etmek için Debugger.IsAttached kullanacağım. –

İlgili konular