Подтвердить что ты не робот

Как используется файл license.licx

У меня есть файл license.licx, который включен в одно из свойств моих проектов. Я не уверен, как это используется его DLL. Используется ли msbuild? Вы знаете, как он используется при создании решения?

4b9b3361

Ответ 1

Проблемы с лицензиями .licx

Запишите это в ASP.NET, Department of WTF.

Разочарование Когда вы разрабатываете веб-приложение с нашими появляется таинственный файл с именем license.licx. Нет, это не заказ на использование леденца с именем weirdly-named, но это переходный файл сгенерированный (и измененный) Visual Studio, который участвует в лицензии проверка. В режиме разработки Visual Studio использует этот файл, чтобы сделать заметку каждого лицензированного элемента управления, который вы используете в своем дизайне. Когда вы строите ваше приложение, Visual Studio, прочитайте этот файл license.licx и для каждый упомянутый там элемент управления загружает соответствующую сборку и запускает код лицензии в этой сборке, чтобы увидеть, правильно ли установлена ​​сборка (то есть, продукт, к которому он принадлежит, был правильно установлен на этой машине). Если все проверяется, Visual Studio вставляет лицензионный ключ в исполняемый файл. Если это не так, вы получите странные сообщения об ошибках о том, что элемент управления не лицензирован (моим фаворитом является "Не удалось преобразовать файл лицензий" license.licx ' в двоичный ресурс ", к которому я обычно вызываю красочную язык моих предков).

Лицензии .licx - это фактически файл в вашем решении (если вы не видите там, нажмите Показать все файлы). Visual Studio использует программу, называемую lc.exe для компиляции лицензий на встроенные ресурсы в вашем приложения, и когда что-то пойдет не так с компиляцией лицензии, я которые также ссылаются на этот исполняемый файл.

Вот пример строки в файле license.licx.

DevExpress.XtraCharts.Web.WebChartControl, DevExpress.XtraCharts.v8.2.Web, Version = 8.2.4.0, Culture = нейтральный, PublicKeyToken = 9b171c9fd64da1d1

Первое значение в этом списке с разделителями-запятыми - это класс, второй это сборка, где она находилась, а остальные значения - остальные сборка сильное имя. Я уверен, что вы уже видите проблемы, особенно когда вы обновляете решение до последних версий сторонних элементов управления, которые вы используете. Если вы хотите, вы можете отредактировать этот файл и удалите сильные части названия без проблем.

Но это не самая большая проблема с лицензиями .licx. Дело в том Visual Studio имеет склонность касаться этого файла, если вы открываете решение (что" касание ", как при изменении даты файла на текущая дата/время). Это приводит к хаосу с лицензированием, особенно если вы произойдет открытие решения на нелицензированной машине, и вы используете управления источником. Внезапно ваша строительная машина сбросит эти" не может трансформировать "сообщения, и вам остается недоумевать, что пошло не так. Еще одна распространенная проблема - когда у вас есть команда разработчиков, работающих на решении: они все бессознательно" изменяют "этот файл.

Таким образом, ответ, похоже, заключается не в том, чтобы поместить файл license.licx в управления источником. (статья в KB)

Но это решение проблемы выбрасывает еще один красный флаг: если один из разработчики в команде добавляют новый элемент управления, требующий лицензирования для форма, строка добавляется в его локальный файл license.licx, и это может не отражаются в контроле источника. Bam, ваша машина сборки не работает и Джо, который добавил контроль, должен купить пончики для команда, пока кто-то не сломает сборку.

Я боюсь, что у меня нет хорошего решения этой последней проблемы, потому что к сожалению," не помещая license.licx в исходный контроль" кажется чтобы каждый решал проблему лицензирования. Другая решение заключается в том, чтобы удалить файл license.licx в целом, а затем получить Visual Studio, чтобы восстановить его, открыв решение (хотя это немного сложно на машине сборки).

В любом случае, надеюсь, что все это поможет. И нажав на свой ноутбук с телефон действительно не поможет.

Ответ 2

Поскольку вы указываете, что ответ StellarEleven не помогает, я думаю, вы ищете что-то еще более простое. Это, вероятно, не на 100% правильно, но я понимаю, как это работает:

Файл licx - это просто список "лицензированных" компонентов, используемых вашим приложением.

Каждая строка в файле имеет следующий формат:

[Component Name], [Assembly Name]

Например, один из моих проектов использует лицензированный компонент IP Works NetDial, поэтому мой файл .licx содержит следующую строку:

nsoftware.IPWorks.Netdial, nsoftware.IPWorks

В контексте проекта (.csproj) файл .licx ссылается как EmbeddedResource. Во время процесса сборки LC.exe подтверждает, что машина, выполняющая сборку, имеет соответствующую лицензию (-и) для рассматриваемого компонента и генерирует бинарный файл .licenses, который в конечном итоге становится встроенным в качестве ресурса ([AssemblyName].exe.licenses) в окончательном исполняемом файле.

Помогает ли это?