Zajmuję się tworzeniem biblioteki klas, która powinna być licencjonowana dla określonych komputerów programistów. Nie ma żadnych elementów, aby nie można było przeprowadzić kontroli licencji na czas projektowania.Wykonaj metodę z przywoływanej biblioteki klas przed kompilacją aplikacji .NET do sprawdzania licencji
Kontrola ta jest w rzeczywistości niedostępna dla bibliotek czystych klasy:
if(LicenseContext.UsageMode == LicenseUsageMode.Designtime) ...
Jeden zasugerował użycie Debugger.IsAttached aby sprawdzić, czy lib jest używany na komputerze programu: Design-Time validation of library
Ale "Zajmuje się rozwiązaniem na etapie budowy, tak aby program nie został zbudowany, jeśli licencja jest nieważna (eG ta maszyna nie jest licencjonowana). Jakieś sugestie?
"Ta kontrola jest w rzeczywistości niedostępna dla czystych bibliotek klas". Cóż, jest _available_ (tj. Nadal jest częścią 'System.dll') :-) Jest po prostu _meaningless_ Myślę, że' .UsageMode' zawsze zwróci 'LicenseUsageMode.RunTime', chyba że metoda zawiera to sprawdzanie (w twojej lib) jest wywoływana z kodu czasu projektowania kontrolki/komponentu. – Sepster
Czy lib będzie (swobodnie) dostępny dla konsumentów aplikacji deweloperów? W takim razie czy jest coś, co powstrzymuje programistę przed otrzymaniem darmowej wersji biblioteki i opracowaniem tego? +1 przy okazji ... Jestem zainteresowany, aby zobaczyć, jakie odpowiedzi otrzymasz. – Sepster
Może niektóre odmiany z CodeContracts będą pomocne? – Daniil