我真的需要帮助。
我们正在使用CI构建过程(Hudson)作为使用Msbuild的自动构建系统。 CI在Apache Tomcat 6中运行,在域用户(不是本地Windows用户)的凭据下运行。
每次CI尝试构建InstallShield项目(使用isproj文件)时,都会收到许可证错误消息: “C:\ Program Files \ MSBuild \ InstallShield \ 2010 \ InstallShield.targets(62,3):错误:-7159:产品许可证已过期或尚未初始化。您必须启动IDE以配置产品许可证为了继续。 C:\ Program Files \ MSBuild \ InstallShield \ 2010 \ InstallShield.targets(62,3):error:异常捕获“。
如果我使用相同的域用户凭据登录到同一台计算机并构建InstallShield项目,则会有许可证并且运行良好。
将用户添加到本地用户组没有帮助(没有许可证)。 将用户添加到本地Administrators组有助于它正在运行。
我们不希望用户出于本地管理员组 - 出于各种原因。
我需要做些什么才能让它发挥作用? 我是否需要为使用添加权限?
帮助将受到高度赞赏。
吉拉德
答案 0 :(得分:0)
您的构建调用是SaBld.exe还是isCmdBld.exe? InstallShield在2010年更改了其策略,因此独立构建功能(isSaBld)仅适用于顶级许可证。在以前的版本中,它也可以在Pro中使用。也许这与它有关?
我们有一个类似的构建系统 - Tomcat 6中的Hudson,IS2010,但是使用Ant脚本 - 并且调用IsCmdBld.exe对我们有效。
答案 1 :(得分:0)
如果您使用的是Hudson as a service,请尝试以管理员身份运行该服务。但您需要确保管理员首先成功从InstallShield IDE构建项目。
答案 2 :(得分:0)
我们不希望用户属于本地Administrators组
据我所知,没有办法解决这个问题。 InstallShield的产品许可运行低级系统检查,要求正在运行的用户在Administrators组中才能成功。这就是为什么当你启动InstallShield IDE时会出现UAC提示。这样他们就可以验证他们授予您的许可证是否未被移动到其他计算机。不知道他们究竟如何做到这一点,想象一下直接磁盘扇区访问,CPU序列号读取,硬盘驱动器固件访问等。如果没有管理员权限,您就无法执行这些操作。
但是,为了确保可以复制每个构建,构建机器应该是神圣不可侵犯的,并且只应向受信任的构建用户授予对它的访问权限。它们是构建机器上的管理员的标准。
您能否详细说明为何不让用户成为管理员?这将使我们能够为您提供更好的投入。