Как работает модель лицензирования компонентов .Net.
Я столкнулся с несколькими сторонними поставщиками компонентов .Net, использующими схему лицензирования. В оценочной копии компоненты отображаются с помощью экрана или водяного знака или какого-либо такого индикатора. На лицензированной машине создается Licenses.licx - с тем, что похоже на полное имя/идентификаторы сборки. Этот файл должен быть включен, когда сборка клиента построена.
- Как работает эта модель? Как с точки зрения поставщиков компонентов, так и пользователей.
- Для чего используется файл .licx? Должен ли он быть проверен? У нас было несколько проблем с проверкой неправильного/правильного файла .licx, а что нет
Ответы
Ответ 1
Почти все о лицензировании .Net объясняется здесь. Мне не нужно переписывать.
Лучше исключить файлы лицензии из проекта в исходное управление, если можно. В противном случае редактирование визуальных компонентов может быть болью в заднице. Кроме того, хранение файлов лицензий в репозитории управления версиями не требуется.
Надеюсь, что это поможет.
Ответ 2
Это не правильно. Файл licx очень важен и необходим для создания хост-приложения с правильной информацией о лицензии, встроенной в него. Итак, важно, чтобы файлы licx также включались в исходный контроль. В противном случае человек, проверяющий исходный код на другом компьютере, не получит файл licx, и сборка может завершиться неудачей или не иметь правильную информацию о лицензии для используемых компонентов в exe.
Ответ 3
Это была хорошая статья на эту тему: Нажмите здесь
Чтобы развернуть приложение с лицензированными компонентами, такими как TX Text Control, EXE файл должен быть лицензирован правильно.
Механизм лицензирования .NET рекомендует добавлять лицензии в EXE - вызывающую сборку.
---- Что происходит подробно?
Если вы перетащите TextControl из инструментария Visual Studio в форму, Visual Studio создаст файл license.licx и включит информацию о лицензии. Этот файл находится в той же папке, что и файл вашего проекта.
Важно: файл license.licx не включает собственно строку лицензии. Он просто содержит информацию о лицензированных компонентах. В случае TX Text Control (TXTextControl.TextControl) следующая строка добавляется:
TXTextControl.TextControl, TXTextControl, Version=15.0.700.500, Culture=neutral, PublicKeyToken=6b83fe9a75cfb638
Как вы можете видеть, он содержит пространство имен и управляющее имя, версию сборки, информацию о культуре и уникальный токен открытого ключа. На основе этой информации компилятор лицензий (lc.exe) компилирует настоящую строку лицензии, которая будет внедрена в исполняемую сборку. Lc.exe - небольшая утилита .NET Framework SDK, которая используется Visual Studio во время процесса сборки.
---- Что делать, если я использую TX Text Control в пользовательском элементе управления?
В этом случае вам также необходимо добавить лицензию на основной исполняемый файл. Поэтому вы можете просто перетащить TextControl в фиктивную форму основного проекта, чтобы файл license.licx и ссылки были добавлены автоматически.
После этого вы можете снова удалить TextControl из этой формы. Или вы можете просто скопировать или создать файл license.licx в основную папку проекта. В этом случае вам также необходимо вручную добавить ссылку на TX Text Control.