Отсутствует файл ComponentOne licenses.licx
-
03-07-2019 - |
Вопрос
Я работаю над приложением, которое широко использует C1FlexGrid от ComponentOne.Из десятков используемых нами приложений у трех отсутствует файл licenses.licx, из-за чего при запуске приложения появляется демонстрационная заставка.
Есть ли какой-нибудь способ определить, какие формы вызывают такое поведение?Если не считать проверки сотен каталогов вручную, я не вижу способа.
Решение
Согласно документации Microsoft, только для исполняемой сборки требуется файл licenses.licx.Сборки Dll с формами в них все равно создадут одну из них, но она игнорируется.Это был и мой опыт тоже.Я бы предложил открывать каждую форму в представлении конструктора и перестраивать ее в этом представлении.Обычно при этом все недостающие записи лицензии добавляются в licenses.licx.Однако это не приведет к обновлению существующих записей.Это может быть проблемой, если вы обновили свои компоненты.Для ComponentOne обычно можно отредактировать licenses.licx и удалить информацию о версии после названия сборки.Некоторые другие сторонние компоненты более привередливы, и прикосновение к информации об их версии приводит к ошибкам при компиляции.
На мой взгляд, система лицензирования .NET является громоздкой и ложится ненужным бременем на разработчиков.Существуют гораздо более простые способы обеспечить соблюдение лицензий на компоненты.
Другие советы
Вам не обязательно открывать каждую форму.Каждый проект имеет один файл licenses.licx.Просто убедитесь, что в этих файлах есть ссылки на C1FlexGrid, а затем выполните полную перестройку (Build | Rebuild All).
Это должно решить проблему.
Иногда открытие форм и перестройка всего решения даже не работает.Так и в данной ситуации.Просто перетащите какой-нибудь элемент управления ComponentOne из toolbox в свою форму (впоследствии вы можете удалить его).Это перетаскивание автоматически сгенерирует licenses.licx в папке Properties.
У ComponentOne есть служебная программа, которая (повторно) сгенерирует файл licenses.licx для существующего проекта.
Исходная статья: https://www.grapecity.com/blogs/licensing-and-licenses-licx-file-licxgenerator-tool
Инструкции:
Инструмент LicxGenerator
К счастью, [генерация файла license.licx] может быть автоматизирована, и большое спасибо нашему клиенту Дому Синклеру за вдохновение.Инструмент [ссылка ниже] LicxGenerator создает файл license.licx с записями информации о лицензии для всех элементов управления, найденных по указанному пути.Если вы запустите его, он попросит вас найти папку binaries, а затем поместить созданный файл по тому же пути.Если вам нужно больше контроля, вы можете запустить его с помощью параметров командной строки.Вы также можете запускать его с другими автоматизированными задачами.
Использование:
LicxGenerator [-r] [-p prefix] [-s] [sourcePath] [outputPath]
Параметры:
-r
:Для рекурсивного поиска во вложенных папках;
-p
:Выполняйте поиск только в файлах, имена которых начинаются с указанного префикса;
-s
:Бесшумный режим.Если оба
sourcePath
и-s
параметр не указан, программа будет показать диалоговое окно выбора папки.ЕслиoutputPath
не задано, оно будет таким же, какsourcePath
ценность.Чтобы сгенерировать файл licenses.licx для вашего проекта:
Сначала создайте свой проект, чтобы выходная папка содержала все двоичные файлы;
Запустите LicxGenerator, указав путь к выходной папке проекта;
Возьмите сгенерированный файл license.licx и добавьте его в проект.
Этот бесплатный инструмент сэкономит вам много времени на изучение вопросов лицензирования .