【问题标题】:Embeding a licenses.licx file into an exe using MSBuild via a NAnt script使用 MSBuild 通过 NAnt 脚本将 licenses.licx 文件嵌入到 exe 中
【发布时间】:2010-05-13 14:45:47
【问题描述】:

我们使用 TeamCity 为我们的应用程序自动构建设置。此应用程序使用 Active Reports 6,它使用 license.licx 文件进行许可。当我在构建机器上使用 Visual Studio 构建时,一切都很酷,当我将我的应用程序分发给其他人时,许可证就会被识别。

问题是我们的构建服务器使用 MSBuild。当使用 MSBuild 构建时,使用相同的 license.licx 文件,它没有正确嵌入到我们的可执行文件中,并且 AR6 水印出现在报告上。

联系 ActiveReports 支持后,他们让我使用 LC.exe 工具生成 .licenses 文件,然后使用 C# 命令行编译器 (CSC) 将我的 .licenses 文件编译到我的应用程序中。这对我不起作用。

调用 MSBuild 的 NAnt 任务如下:

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

使用的变量:

属性名称="msbuild" value="C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe"

属性名称="解决方案" value="project.sln"

property name="config" value="release"

请注意,我从这里的属性中删除了 ,因为它们似乎因为引用系统 (>) 而没有出现

我们可以在使用 MSBuild 构建时将 license.licx 文件正确嵌入到我的可执行文件中吗?

谢谢

【问题讨论】:

    标签: msbuild licensing nant


    【解决方案1】:

    我终于解决了这个问题。当使用机器上的管理员帐户安装 ActiveReports 许可证时,它原来是我们在 SYSTEM 帐户下运行的构建服务器。

    以管理员帐户运行 TeamCity 服务(我们的构建服务器)解决了我们的问题。

    【讨论】:

    • 这也帮助我解决了我在构建服务器上使用旧版本 ActiveReports 时遇到的问题!
    • 以管理员身份运行构建服务器非常危险。只需考虑运行单元测试。构建服务器正在运行任意代码。注意:这正是 SolarWinds 和其他主要公司遭到破坏的原因。如果特定任务需要权限,请以管理员身份运行只能执行该操作的特定程序,然后在构建环境中与该程序通信(休息?)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-20
    • 2013-04-21
    • 1970-01-01
    • 2017-06-14
    • 2021-12-14
    相关资源
    最近更新 更多