Встраивание файла licenses.licx в исполняемый файл с помощью MSBuild с помощью сценария NAnt

У нас есть автоматическая настройка сборки с использованием TeamCity для нашего приложения. Это приложение использует Active Reports 6, которые используют файл license.licx для лицензирования. Когда я создаю с помощью Visual Studio на машине сборки, все в порядке, и лицензия распознается, когда я распространяю свое приложение среди других.

Проблема в том, что наш сервер сборки идет с MSBuild. При создании с использованием MSBuild с тем же файлом license.licx он не встраивается должным образом в наш исполняемый файл, и в отчетах появляется водяной знак AR6.

После обращения в службу поддержки ActiveReports они предложили мне использовать инструмент LC.exe для создания файла .licenses, а затем использовать компилятор командной строки C # (CSC) для компиляции моего файла .licenses в мое приложение. У меня это не сработало.

Задача NAnt, вызывающая MSBuild, следующая:

<exec program="${msbuild}">
  <arg value="${solution}" />
  <arg value="/p:Configuration=${config}" />
  <arg value="/t:rebuild" />
</exec>

Используемые переменные:

property name = "msbuild" value = "C: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ MSBuild.exe"

имя свойства = "решение" значение = "проект.sln"

свойство name = "config" value = "release"

Обратите внимание, что я удалил ‹и /> из свойств здесь, потому что они не отображаются из-за системы кавычек (>)

Можем ли мы правильно встроить файл license.licx в мой исполняемый файл при сборке с использованием MSBuild?

Спасибо


person GMunro    schedule 13.05.2010    source источник


Ответы (1)


Я решил проблему наконец. Оказалось, что это наш сервер сборки, работающий под учетной записью SYSTEM, когда лицензия ActiveReports была установлена ​​с использованием учетной записи администратора на машине.

Запуск службы TeamCity (наш сервер сборки) в качестве учетной записи администратора решил нашу проблему.

person GMunro    schedule 14.05.2010
comment
Это также помогло мне решить проблему, с которой я столкнулся со старой версией ActiveReports на моем сервере сборки! - person MDV2000; 26.09.2017
comment
Запускать сервер сборки от имени администратора безумно опасно. Просто подумайте о запуске модульного теста. На сервере сборки выполняется произвольный код. ПРИМЕЧАНИЕ: ТОЧНО, как взломали SolarWinds и другие крупные компании. Если для определенной задачи требуется разрешение, запустите определенную программу как admint, которая может делать только это, а затем взаимодействуйте с этой программой (отдыхать?) Из среды сборки. - person David V. Corbin; 04.02.2021