我很难将图像添加到使用NSIS/MUI2编写的安装程序的第一页。
这是我正在使用的代码的精简版本。
!include "MUI2.nsh"
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP nsis-header.bmp
!define MUI_WELCOMEFINISHPAGE_BITMAP nsis-welcome.bmp
OutFile "Setup.exe"
# Set language
!insertmacro MUI_LANGUAGE "English"
# Pages for installation
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "..\LICENSE"
!insertmacro MUI_PAGE_FINISH
Section Foo
SectionEnd
标题在许可页面上正确显示,但我无法在欢迎页面上显示。我尝试使用164x314图像(正如文档推荐的那样),位图保存在16b或24b或32b中,图像与标题相同(以确保它不是位图的问题),在Win2k下编译设置和Linux ......没有任何作用。
位图正确存储在设置中:
$ 7z l demyo-1.4.exe | grep modern- | awk '{ print $4 }'
$PLUGINSDIR/modern-header.bmp
$PLUGINSDIR/modern-wizard.bmp
知道我做错了什么?
答案 0 :(得分:13)
即使有Anders提供的指导,我也无法使用它。我的问题在于图像本身。
这些步骤适用于我使用GIMP 2.8.10:
现在重新编译你的nsi脚本,你的安装程序应该使用你指定的图像。
答案 1 :(得分:10)
MUI_LANGUAGE
宏必须在源文件中的MUI_PAGE_*
宏之后
答案 2 :(得分:5)
对于像我这样的其他人有同样的问题,但(稍微)有不同的解决方案:
确保您拥有MUI_LANGUAGE宏。 (正如真正的答案所示,它必须在页面宏之后)。 如果你根本不包括它,很多东西似乎都不起作用,不仅是图像,甚至还有一些文本,等等......
!insertmacro MUI_LANGUAGE "English"
答案 3 :(得分:3)
确保您的图片为8位
答案 4 :(得分:1)
你的代码看似很好,但我注意到你说:
我尝试使用164x364图像(作为 doc推荐)
documentation实际建议164x314。因此,如果这不仅仅是您的错字,请尝试调整图片大小。
如果这没有帮助,请告诉我们显示的是什么而不是您的图像。它是默认图像还是只是空白?
答案 5 :(得分:1)
您希望查看nsis-welcome.bmp
文件并将modern-wizard.bmp
。
答案 6 :(得分:0)
我遇到了同样的问题,问题就像原答案中提到的那样解决了。
!define MUI_ABORTWARNING
!define MUI_ICON "my.ico"
!define MUI_UNICON "my.ico"
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP orange.bmp
!define MUI_WELCOMEFINISHPAGE_BITMAP orange_b.bmp
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "LicenseAgreement.rtf"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
这里有一个兴趣点,如果语言文件已经使用
加载到任何头文件的其他位置LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf" ;don't include while using MUI2
然后NSIS报告以下错误。
Error: can't load same language file twice.
Error in macro MUI_LANGUAGE on macroline 9
必须注释掉任何语言文件包含以查看标题图像。