Я бы предложил, чтобы у вас была дата в отдельной сборке со строгим именем - тогда, по крайней мере, злонамеренному пользователю будет трудно разобрать, отредактировать и заставить вашу программу использовать ее. Есть ли способ, чтобы две сборки проверяли друг друга на основе строгих имен?
Мы как бы используем это как первый шаг в нашем контроле лицензий для одного из наших компонентов. Если вызывающая сборка имеет тот же отпечаток пальца, что и контролируемая лицензия, мы предполагаем, что она используется в нашем программном обеспечении, и лицензирование обойдено. Если вызывающая сборка имеет другой отпечаток пальца или вообще не имеет отпечатка, выполняется обычная проверка лицензии. Когда я думаю об этом, наши пользователи, вероятно, могут разбирать, компилировать без строгих имен и обходить лицензирование. Но опять же, все наши сборки поставляются как x86, а не как CIL - это что-нибудь изменит?
Наш опыт показывает, что если вы имеете дело с корпоративными клиентами, никто не может нести хлопоты по поводу ваших вещей, тем более что существует риск быть пойманным. Немного пройдёт долгий путь, наше текущее решение по лицензированию устарело (пакет включает в себя примеры для VC5!), Но до сих пор было достаточно большим препятствием. С потребителями, с другой стороны, я могу представить, что это большая угроза.
Мое первоначальное предложение, кажется, породило больше вопросов, на которые можно ответить - возможно, не очень полезных в конце концов. :)