1

我想从 VirtualBox 二进制文件(通过构建源代码创建)创建一个 VirtualBox 安装文件(msi)。为此,我构建了此处的 VirtualBox 源:https ://www.virtualbox.org/wiki/Windows%20build%20instructions 。在构建(kmk)之后我运行:“kmk packing”
打包 3 分钟后,我得到这个错误:

D:/_WORK/Dale/VirtualBox-4.3.0/kBuild/bin/win.x86/kmk_redirect.exe -a+to D:/_WORK/Dale/VirtualBox-.3.0_1/out/win.x86/release/obj/Installer/win/NLS/License_it_IT.wxl -- D:/_WORK/Dale/VirtualBox-4.3.0/kBuild/bin/win.x86/kmk_echo.exe -n '<String Id="LicenseText">'make (e=127): The specified procedure could not be found.
kmk: *** [D:/_WORK/Dale/VirtualBox-.3.0_1/out/win.x86/release/bin/additions/VBoxWHQLFake.exe] Error 127


为了尝试解决这个问题,我稍微更改了文件 out\win.x86\release\obj\Installer\win\NLS\License_en_US.wxl,例如:< String Id="LicenseText">Test</String>
这似乎不知怎的,但又出现了另一个错误:

process_begin: CreateProcess(NULL, D:/_WORK/Dale/VirtualBox-4.3.0_1/tools/win.x86/autoit/v3.2.10.0/Aut2Exe/Aut2exe.exe /in D:/_WORK/Dale/VirtualBox-4.3.0_1/src/VBox/Additions/WINNT/Installer/VBoxWHQLFake.au3 /out D:/_WORK/Dale/VirtualBox-4.3.0_1/out/win.x86/release/bin/additions/VBoxWHQLFake.exe /icon D:/_WORK/Dale/VirtualBox-4.3.0_1/src/VBox/Frontends/VirtualBox/images/OSE/VirtualBox_win.ico /comp 4 /unicode, ...) failed.
make (e=127): The specified procedure could not be found.
kmk: *** [D:/_WORK/Dale/VirtualBox-4.3.0_1/out/win.x86/release/bin/additions/VBoxWHQLFake.exe] Error 127

有没有人遇到过这个问题,或者有人从它的二进制文件(从源代码构建)成功地创建了一个 Virtual Box 安装程序?谢谢

4

1 回答 1

2

我终于设法在 64 位 Windows 上构建了 VirtualBox 安装程序。

要解决您的问题,您应该安装http://www.autoitscript.com/site/autoit/并在 LocalConfig.kmk 中设置 VBOX_PATH_AUTOIT3。但这并不是问题的终结……

您还应该安装 WIX。请注意,安装路径中不应包含空格。

WIX 是不够的。要为来宾添加构建安装程序,您还必须安装 NSIS 2.46。同样,安装路径不得包含任何空格。此外,必须定义 NSIS_CONFIG_LOG。默认情况下未定义。您需要自己编译 NSIS 或从http://nsis.sourceforge.net/Special_Builds获取高级日志构建

您还必须安装http://nsis.sourceforge.net/NsProcess_pluginhttp://nsis.sourceforge.net/AccessControl_plug-in

另请注意,如果启用了签名,则必须从提升的(管理员)命令提示符调用 kmk 打包。

我还必须将 mkisofs.exe 放在 VirtualBox-source\tools\win.amd64\bin 目录中

此外,zip.exe 必须在 PATH 中可用

我还将以下文件复制到输出 bin 目录中:QtCoreVBox4.dll、QtGuiVBox4.dll、QtNetworkVBox4.dll、QtOpenGLVBox4.dll 和accessible\qtaccessiblewidgets4.dll

面向 Windows Installer 开发人员的 Windows SDK 组件是另一个要求。

我的 LocalConfig.kmk 如下:

VBOX_SIGNING_MODE=test
PATH_TOOL_MINGW32=C:/vbox-build32/mingw32
VBOX_PATH_WIX=C:\vbox-build\WindowsInstallerXMLv3.5\bin
VBOX_PATH_AUTOIT3="C:/Program Files (x86)/AutoIt3"
#Whitespaces in NSIS path result in error
VBOX_PATH_NSIS="C:/vbox-build/NSIS"
#Quotation marks in VBOX_PATH_DIFX result in error
VBOX_PATH_DIFX=C:\WinDDK\7600.16385.1\redist\DIFx\DIFxAPI\$(KBUILD_TARGET_ARCH)
#Microsoft Windows SDK. Whitespaces in path result in error
VBOX_PATH_MSITRAN="C:\vbox-build\SDK\v7.1\Bin\MsiTran.Exe"
VBOX_PATH_MSIDB="C:\vbox-build\SDK\v7.1\Bin\MsiDb.Exe"
VBOX_PATH_WISUBSTG="C:\vbox-build\SDK\v7.1\Samples\sysmgmt\msi\scripts\WiSubStg.vbs"
VBOX_PATH_WISUMINFO="C:\vbox-build\SDK\v7.1\Samples\sysmgmt\msi\scripts\WiSumInf.vbs"
VBOX_WITH_WEBSERVICES=
于 2014-02-09T16:41:16.257 回答