Станислав Петрушевский пишет:Здравствуйте!
Из Вашего объяснения не совсем понятно, какой именно совет Вы хотите от нас получить.
Если Вы хотите привязать 3 библиотеки .net к нашему ключу с помощью мастера лицензирования и автоматической защиты, то Вам нужно добавить все эти библиотеки в проект. Обращаю Ваше внимание, что библиотеки с внешними вызовами не следует подвергать обфускации.
Если я Вас правильно понял, Вам нужно в Ваш проект автозащиты добавить dll_2, но не подвергать его функции защите и не обфусциоровать, а остальные dll защитить по аналогии с предыдущим проектом.
App_1 <---> dll_1 <--- dll_3 ---> [dll_2 <---> App_2]
App_1 - основное приложение, используемое пользователем. App_1 загружает dll_1 (COM объект). App_1 может располагаться как на пользовательском ПК, так и на терминальном сервере, значит лицензировать надо "на процесс".
App_2 - вспомогательное приложение, которое пользователь может использовать (а может и не использовать). App_2 располагается на клиентском ПК и загружает dll_2. dll_2 взимодействует c dll_1 посредством различных механизмов, использование dll_2 без dll_1 невозможно и не имеет смысла, значит лицензировать ее (ограничивать количество запусков) не надо
dll_3 библиотека классов для dll_1 и dll_2 (т.е. подгружается обеими и dll_1 и dll_2 ), значит лицензировать ее не надо.
Мне нужно защитить и обфусцировать все три библиотеки, но чтобы ресурс сетевого ключа уменьшался при загрузке только dll_1 каким либо процессом , а загрузка dll_2 и, соответственно, dll_3 другим процессом не приводила бы к захвату еще одной лицензии.
Т.к. dll_1 + dll_3 грузятся процессом App_1, а dll_2 + dll_3 грузятся процессом App_2, то получается чтобы занять всего одну лицензию, я должен защитить протектером только dll_1. Т.е. я не могу добавить все три библиотеки в проект Мастера лицензирования, и не могу добавить две любые библиотеки, иначе один пользователь займет две лицензии при использовании dll_1 и dll_2 (напомню что они используются разными процессами). Мне кажется в опции "Ограничивать запуск в сети" очень не хватает четвертого пункта "Не ограничивать", тогда можно было бы добавить в проект все три библиотеки как независимые, dll_1 ограничить по количеству процессов, а dll_2 и dll_3 не ограничивать. Можете посоветовать что мне делать?
Почему нельзя обфусцировать библиотеки с внешними вызовами? Обфусцирую все кроме публичных интерфейсов и вроде все работает.