Как работает модель лицензирования компонентов .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.