那麼我發現nsis部分隱藏的一些論壇主題,也檢查NSIS的幫助,但無法找到我的答案。我想要一個簡單的東西,即按照我的要求,我想完全隱藏一個部分,而不用註釋整行代碼。NSIS部分隱藏(編譯和執行)
現在這應該影響兩件事。
- 部分應從編譯範圍中刪除,就像我評論這些行一樣。
- 不要從安裝程序執行代碼。
如果我使用#,/ o或 - 節名前。它正在做第二點。但任何方式來實現第一個?
那麼我發現nsis部分隱藏的一些論壇主題,也檢查NSIS的幫助,但無法找到我的答案。我想要一個簡單的東西,即按照我的要求,我想完全隱藏一個部分,而不用註釋整行代碼。NSIS部分隱藏(編譯和執行)
現在這應該影響兩件事。
如果我使用#,/ o或 - 節名前。它正在做第二點。但任何方式來實現第一個?
可以使用條件編譯:
!define INCLUDESECTION
!ifdef INCLUDESECTION
Section "section1"
...
SectionEnd
!endif
您還可以決定是將部分或沒有,從命令行:
makensis.exe /DINCLUDESECTION example.nsi
在這種情況下,你不必定義在你的nsis代碼中包含INCLUDESECTION。
這是壞主意在編譯時禁用部分,以避免它的選擇/執行,因爲:
我可能認爲這一切都來自運行時段選擇/隱藏行爲的無效未確定。因此,要確保你那裏有什麼太大的問題,使用部門選擇/隱藏在運行時你要明白幾件事情想的:
所以,做正確的事情,你必須:
我知道所有人都說這樣做有點棘手,但是你會發現這種方式幾乎是一種常見的方法來一次性修復所有部分問題,並避免代碼進一步複雜化。
是的,這是一個很好的。但是沒有內置命令切換來跳過隱藏部分編譯。我對嗎? – hypheni
隱藏部分是在「組件」頁面上未顯示給用戶的部分。它不是「禁用」或非活動部分,因此隱藏部分在運行時執行,因此必須進行編譯。 –
好的。所以隱藏意味着只跳過用戶視圖。 'SectionIn'命令怎麼樣?在http://forums.winamp.com/showthread.php?t=255299找到一些帖子。 – hypheni