簡體   English   中英

NSIS安裝程序MUI_ICON語句被忽略

[英]NSIS installer MUI_ICON statement ignored

我正在嘗試在Windows 8.1上使用NSIS構建exe文件。 安裝程序必須在用戶級別(而不是管理員)運行,因為這會破壞其他功能。

我無法使用以下語句將正確的圖標分配給exe文件:

!include MUI2.nsh
!define MUI_ICON  "path_to_icon.ico file"

除非我還包括以下內容,否則以上內容將無效:

!insertmacro MUI_PAGE_WELCOME

包含MUI_PAGE_WELCOME的不良后果(令人費解的)是無法在用戶執行級別啟動安裝程序(運行安裝程序exe時沒有窗口出現,盡管將鼠標懸停在底部任務欄中的圖標上會顯示空白窗口)。 如果我使用“以管理員身份運行”來調用安裝程序,它將啟動(窗口會顯示並安裝了文件),但會導致啟動的應用程序以“管理”模式運行(不需要)。

對於我的生活,我無法弄清楚MUI_PAGE_WELCOME和MUI_ICON之間的依賴性以及使用前者作為Admin運行exe的需要。

還有其他人遇到過這個問題嗎?

沒有完整的示例,我實際上可以編譯,很難知道這里發生了什么。

我可以告訴您,使用MUI時,您必須插入至少一個MUI_PAGE_ *宏和至少一個MUI_LANGUAGE宏。 這些宏之一基本上只是執行Icon "${MUI_ICON}"來設置圖標,但這只是實現細節。

要控制UAC提升請求,您應該使用RequestExecutionLevel屬性。

Outfile "Test.exe"
RequestExecutionLevel user

!include MUI2.nsh
!define MUI_ICON "myicon.ico"

!insertmacro MUI_PAGE_WELCOME ; Commenting out this line has no effect on the icon nor UAC elevation
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE English

Section
SectionEnd

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM