NSIS打包 文件夾權限 --- AccessControl
阿新 • • 發佈:2017-08-15
pop 使用 dap gen 項目 發的 執行 www. ima
之前用electron開發的PC端先是用electron-packager把項目打成可執行文件,然後再用grunt-electron-installer打包成安裝exe文件。最最最不爽的是,安裝沒有自定義目錄,默認裝在C盤;而且有時候會報安裝錯誤(installation has failed)。
grunt-electron-installer提供的是配置式的接口,要解決這些安裝的問題也無從入手。有遇到這個並且解決了的同學歡迎留言。
最後選擇了可操作性比較強的制作程序NSIS:
流程還是和之前一樣先把項目打包
electron-packager npm地址: https://www.npmjs.com/package/electron-packager
然後安裝NSIS 和 Nisedit
打開Nisedit,文件 -》新建腳步(向導)
根據提示創建腳本 -- 參考
完成後會生成一堆堆的腳本
點擊編譯
最後會得出一個安裝包,大功告成。
然而。。。
點擊安裝包 ---》 安裝成功 ---》 使用報錯
。。。。
原因是,項目裏一些邏輯有本地文件操作,權限問題導致了操作失敗,報錯。
繼續谷歌。。。
找到了 AccessControl
官方地址: http://nsis.sourceforge.net/AccessControl_plug-in
先安裝這個插件
找到NSIS安裝目錄,把壓縮包對應的文件拷進去就安裝好了。
然後,回到Nisedit,在復制文件夾時候使用
SetOutPath "$INSTDIR\resources\app" File "..\..\..\dApp\HomeCloud\out-dev\HomeCloud-win32-x64\resources\app\LICENSE.txt" File "..\..\..\dApp\HomeCloud\out-dev\HomeCloud-win32-x64\resources\app\logo-16.ico" File "..\..\..\dApp\HomeCloud\out-dev\HomeCloud-win32-x64\resources\app\logo.ico" File "..\..\..\dApp\HomeCloud\out-dev\HomeCloud-win32-x64\resources\app\main.js" ; 設置權限 ------ AccessControl::GrantOnFile "$INSTDIR\resources\app" "(BU)" "GenericRead + GenericWrite" Pop $0
意思是把app下的所有文件設置為可讀寫。
然後再次編譯腳本。
大功告成。。。。。。
NSIS打包 文件夾權限 --- AccessControl