Лицензионный файл.licx и лицензионные / нелицензионные машины

StackOverflow https://stackoverflow.com/questions/8345014

Вопрос

В решении VS2010 у меня есть файл license.licx, который содержит:

DataDynamics.ActiveReports.ActiveReport, ActiveReports6, Version=6.1.2814.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff
DataDynamics.ActiveReports.Web.WebViewer, ActiveReports.Web, Version=6.1.2814.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff
DataDynamics.ActiveReports.Export.Pdf.PdfExport, ActiveReports.PdfExport, Version=6.1.2814.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff
DataDynamics.ActiveReports.Design.Designer, ActiveReports.Design6, Version=6.1.2814.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff
DataDynamics.ActiveReports.Viewer.Viewer, ActiveReports.Viewer6, Version=6.1.2814.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff

Если я создам решение на компьютере, у которого ЕСТЬ лицензия на ActiveReport, тогда все будет в порядке.Если я создам решение на компьютере, у которого НЕТ лицензии на ActiveReport, я получу:

Ошибка 1 "Не удалось загрузить файл или сборку "ActiveReports6, Версия=6.1.2814.0, Язык интерфейса = нейтральный, PublicKeyToken=cc4967777c49a3ff" или одна из его зависимостей.Операция не поддерживается.(Исключение из HRESULT:0x80131515)' LC

На компьютере, у которого НЕТ лицензии на ActiveReport, если я удалю приведенные выше строки из файла license.licx, все будет работать нормально.Я всегда думал, что если лицензия не может быть найдена, то будет использоваться нелицензионная версия, но это не остановит сборку.Как мне заставить это решение работать на любом компьютере, независимо от того, есть у него лицензия или нет?

Это было полезно?

Решение 2

Связались с ActiveReports, и они сказали мне, что файл лицензии может быть сохранен для каждого пользователя, независимо от того, есть ли у них платная лицензия или нет. Хитрость заключается в том, что пользователи, которые не будут генерировать отчеты, должны установить пробную лицензию (которую Actistereport предоставляет бесплатно), а пользователи, которые заплатили за лицензию, будут иметь свою собственную лицензию. Проблема, как и реальная оплачиваемая лицензия, будет иметь дело с файлом License.Licx и предоставит надлежащие действия, когда увидит запись, которую он распознает в файле .Licx.

Другие советы

На самом деле кажется, что на этом компьютере не установлена конкретная версия ActiveReports.

Мы решаем подобные проблемы, сохраняя внешние сборки по пути относительно проекта (т. е...\Assemblies) и изменение всех проектов для включения пути к указанию, например:

<Reference Include="ActiveReports3">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\..\..\..\Assemblies\ActiveReports3.dll</HintPath>
</Reference>

Таким образом, вам не нужно беспокоиться о том, что у каждого разработчика установлена точно такая же версия.Вы должны иметь возможность отлаживать с помощью этой конфигурации, но не создавать для выпуска.

Обновить

Я забыл упомянуть еще об одной практике, которую мы внедряем:если только компонент этого абсолютно не требует (у нас есть только один, который я могу придумать навскидку), мы никогда не храним версии в файле license.licx.Наша запись licenses.licx для приведенного выше примера выглядит следующим образом:

DataDynamics.ActiveReports.ActiveReport3, ActiveReports3

Если вы это сделаете, вам придется работать с файлом licenses.licx, но это определенно решает различные проблемы с управлением версиями.

Если я строю решение на машине, у которой нет лицензии на ActiveReport, я получаю

Это часть проблемы. Как правило, лицензирование требует от каждого разработчика иметь лицензию. Попытка лицензировать только часть вашей команды разработчиков, вероятно, нарушает вашу лицензию ActiveReports.

Должно быть прекрасно использовать пробную версию ActiveReports так, как вы описываете. Я видел ряд проблем с лицензированием Visual Studio с различными компонентами. Обычно их можно решить, используя следующие шаги:

  • Очистите решение, используя Build> Clean
  • Удалить файл LICX (Visual Studio будет генерировать этот файл по мере необходимости).
  • Добавьте элемент управления Arviewer в форму в вашем проекте (вы можете удалить его снова позже). Это необходимо сделать на машине с действительной лицензией ActiveReports. И это то, что должно запустить файл LICX для восстановления с правильной информацией.
  • Восстановите (убедитесь, что вы делаете настоящую перестройку, я знаю, что это должно быть чистым+сборкой, но иногда восстановление кажется важным).

Кроме этого, просто убедитесь, что ваши ссылки все верны. Например, убедитесь, что у вас нет нескольких версий DLL, упомянутых в различных проектах в растворе, и убедитесь, что «Скопировать локальные» и «Использование конкретной версии», как вы ожидаете.

Если у вас все еще есть проблемы создать новый проект, добавьте ActiveReports (или любой компонент, с которыми у вас возникают проблемы) и выполните быстрое приложение в стиле «Hello World», чтобы убедиться, что он работает правильно, а затем сравните два проекта (ссылки, файлы, так далее.).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top