【问题标题】:Using Advanced Installer in Jenkins在 Jenkins 中使用高级安装程序
【发布时间】:2015-06-16 13:52:23
【问题描述】:

好的,我有一个新问题。我正在尝试通过 Windows Batch 命令使用高级安装程序

 "C:\Program Files\Caphyon\Advanced Installer 8.0.1\bin\x86\advinst.exe" /edit "C:\jenkins\workspace\myProject\Platforms\Win32\Install\myProject.aip" /SetVersion %previousVersion%
 "C:\Program Files\Caphyon\Advanced Installer 8.0.1\bin\x86\advinst.exe" /edit "C:\jenkins\workspace\myProject\Platforms\Win32\Install\myProject.aip" /SetProductCode -langid 1033
 "C:\Program Files\Caphyon\Advanced Installer 8.0.1\bin\x86\advinst.exe" /rebuild "C:\jenkins\workspace\myProject\Platforms\Win32\Install\myProject.aip"

项目在调用重建命令时挂起并且永远不会完成。

我认为这可能是我在项目中的一个文件的路径问题,所以我查看了所有路径并确保它们是正确的。我还进入了安装程序并将所有路径设置为绝对路径。

不幸的是,Advance Installer 不会在命令提示符上显示错误,并且除非该过程完成,否则日志不会工作。

当我在我们的构建机器上运行高级安装程序时,它可以毫无问题地构建项目。

有什么建议吗?

更新:这是我的输出日志和 AI 位置。我把 AIP 文件移到了根目录。

Started by user Admin
[EnvInject] - Preparing an environment for the build.
Building remotely on Build 3 in workspace c:\jenkins\workspace\myProject
[EnvInject] - Executing scripts and injecting environment variables after the SCM step.
[EnvInject] - Injecting as environment variables the properties content 
FILE_INSTALLER="C:\Program Files\Caphyon\Advanced Installer 8.0.1\bin\x86\advinst.exe"
DIR_INSTALL="C:\jenkins\workspace\myProject\myProject"
FILE_INSTALL="myProject.aip"

[EnvInject] - Variables injected successfully.
[testdev] $ cmd /c call C:\DOCUME~1\SOFTWA~1.NAF\LOCALS~1\Temp\hudson47906.bat

c:\jenkins\workspace\testdev>cd "C:\jenkins\workspace\myProject\myProject" 

C:\jenkins\workspace\myProject\myProject>dir
Volume in drive C has no label.
Volume Serial Number is 341D-83B7

Directory of C:\jenkins\workspace\myProject\myProject

05/21/2012  09:52 AM    <DIR>          .
05/21/2012  09:52 AM    <DIR>          ..
05/14/2012  01:03 PM    <DIR>          .hg
05/14/2012  09:20 AM               146 .hgignore
05/14/2012  09:20 AM             6,158 .hgtags
05/14/2012  09:20 AM               278 delete compiled files.bat
05/14/2012  09:20 AM               293 file changes.bat
05/15/2012  03:13 PM    <DIR>          myProjectDocs
05/14/2012  09:20 AM    <DIR>          Platforms
05/14/2012  09:20 AM    <DIR>          Universal
05/21/2012  09:52 AM           494,538 myProject.aip
           5 File(s)        501,413 bytes
           6 Dir(s)  26,546,180,096 bytes free

 C:\jenkins\workspace\myProject\myProject>"C:\Program Files\Caphyon\Advanced Installer 8.0.1\bin\x86\advinst.exe" /edit "myProject.aip" /SetVersion 2.6.4.17 

 C:\jenkins\workspace\myProject\myProject>"C:\Program Files\Caphyon\Advanced Installer 8.0.1\bin\x86\advinst.exe" /edit "myProject.aip" /SetProductCode -langid 1033 

 C:\jenkins\workspace\myProject\myProject>"C:\Program Files\Caphyon\Advanced Installer 8.0.1\bin\x86\advinst.exe" /rebuild "myProject.aip" 
 Build was aborted
 Aborted by Admin
 [PostBuildScript] - Execution post build scripts.
 [PostBuildScript] Build is not success : do not execute script
 Build step '[PostBuildScript] - Execute a set of scripts' marked build as failure
 Finished: ABORTED

构建机器上的 AI 位置。

而且我确实在服务器环境变量中列出了高级安装程序路径。

【问题讨论】:

    标签: jenkins advanced-installer


    【解决方案1】:

    您在命令提示符中看不到输出,因为您正在调用“advinst.exe”。 CLI interface of Advanced Installer 旨在通过“AdvancedInstaller.com”调用。

    另外,我想机器上的可用空间不是问题?

    更新:现在有一个official Jenkins plugin for Advanced Installer

    【讨论】:

    • 您是否尝试过“AdvancedInstaller.com”而不是“advinst.exe”,但它仍然呈现相同的行为?
    • 当我尝试使用 AdvancedInstaller.com 时,我收到它不是 Win32 应用程序的错误。
    • 这很奇怪,高级安装程序的资源似乎以某种方式损坏了。您是否尝试过修复 Advanced Installer 并再次调用“AdvancedInstaller.com”?
    • 重新安装有帮助。从 Jenkins 无权访问的位置提取了一个文件。
    【解决方案2】:

    1) 检查机器并确保没有消息弹出。
    2)检查AI的版本和用于创建安装文件的AI版本。
    3) 检查指定的版本,确保它符合 x.x.x.x 格式。

    【讨论】:

    • 1.) 没有消息弹出。我还注意到 AI 没有在机器上创建缓存文件夹或 .msi 文件。 2.) 它是用 8.0.1 创建的 3.) %previousversion% 是一个默认设置为 x.x.x.x 的变量。我已经测试了这两个编辑功能都可以正常工作。
    • hmm 尝试在 jenkins 文件夹中打开构建机器上的 aip 文件并手动运行它。 (不要拉或做詹金斯不会做的任何事情)。这可能表明问题。
    • 我已经运行了我修改后的 .aip 文件,它创建了安装文件,没有任何问题。我不得不修改 .aip 文件的原因是,当 jenkins 从我们的 repo 中提取时,AI 会更改文件路径以查找项目目录中的所有文件。
    • 下一步是尝试从 jenkins 作业目录中的命令提示符开始运行这些命令(一次一个步骤),看看它正在停止或提示哪一步。此外,如果 AI 有一个标志来抑制消息,那么它可能值得传入
    • 每次我从命令行运行命令时,它都会构建 exe。我什至从项目的不同区域运行了命令。
    【解决方案3】:

    首先要检查:使用(例如java -jar hudson.war)在前台运行 Jenkins,而不是作为服务运行。

    【讨论】:

    • 我尝试将它作为服务运行并在前台运行,结果相同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多