青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

面對現(xiàn)實(shí),超越自己
逆水行舟,不進(jìn)則退
posts - 269,comments - 32,trackbacks - 0
轉(zhuǎn)自:http://blog.csdn.net/blueblood7/article/details/7193573


用 NSIS制作64位安裝包 步驟

1、在安裝腳本的開始處定義 LIBRARY_X64。

!include "MUI.nsh"
!include "Library.nsh"

;如果做32位安裝包就把下句注釋。
!define LIBRARY_X64

 

2、注冊COM組件,需包含Library.nsh,用宏InstallLib/UnInstallLib 代替RegDLL/UnRegDLL。

;RegDLL "$SYSDIR\ComName.dll"
!insertmacro InstallLib REGDLL NOTSHARED REBOOT_NOTPROTECTED "LocalPath\ComName.dll" "$SYSDIR\ComName.dll" $SYSDIR

;UnRegDLL "$SYSDIR\ComName.dll"
!insertmacro UnInstallLib REGDLL NOTSHARED REBOOT_NOTPROTECTED "$SYSDIR\ComName.dll"

 

3、在調(diào)用涉及注冊表的函數(shù)前用 SetRegView 64,后用 SetRegView lastused。

!ifdef  LIBRARY_X64
 SetRegView 64
!endif

 WriteRegStr ...
 WriteRegStr ...
 WriteRegStr ...

!ifdef  LIBRARY_X64
 SetRegView lastused
!endif 

SetRegView用戶手冊:
在 Windows x64 上共有2種查看方式。一種用于 32-bit 應(yīng)用程序,另一種用于 x64 應(yīng)用程序。默認(rèn)情況下,32-bit 應(yīng)用程序運(yùn)行在 x64 系統(tǒng)的 WOW64 模式下時,只允許使用 32-bit 查看方式。使用 SetRegView 64 將允許安裝程序在 x64 中訪問注冊表鍵值。

它將影響
DeleteRegKey,
DeleteRegValue,
EnumRegKey,
EnumRegValue,
ReadRegDWORD
,
ReadRegStr
,
WriteRegBin
,
WriteRegDWORD
,
WriteRegStr
,
WriteRegExpandStr

它不會影響 InstallDirRegKey。另外,在函數(shù) .onInit 中也可使用 ReadRegStr 讀取注冊表。

SetRegView 32
ReadRegStr $0 HKLM Software\Microsoft\Windows\CurrentVersion ProgramFilesDir
DetailPrint $0 # prints C:\Program Files (x86)
SetRegView 64
ReadRegStr $0 HKLM Software\Microsoft\Windows\CurrentVersion ProgramFilesDir
DetailPrint $0 # prints C:\Program Files
Function .onInit
  SetRegView 64
  ReadRegStr $INSTDIR HKLM Software\NSIS ""
  SetRegView 32
FunctionEnd

4、在調(diào)用涉及目標(biāo)機(jī)器上系統(tǒng)目錄(即$SYSDIR)的函數(shù)前用 ${DisableX64FSRedirection}。

在安裝包的第一個Section中調(diào)用一次即可。
!ifdef  LIBRARY_X64
 ${DisableX64FSRedirection}
!endif 

 

5、在64位系統(tǒng)上 $PROGRAMFILES64 表示“Program Files”, $PROGRAMFILES 表示 “Program Files (x86)”。

可以在安裝腳本的開始處定義一個常量,
!ifdef LIBRARY_X64
!define PROGRAM_FILES_MAP  $PROGRAMFILES64
!else
!define PROGRAM_FILES_MAP  $PROGRAMFILES
!endif
以后直接用 ${PROGRAM_FILES_MAP} 代替 $PROGRAMFILES。

 

6、在.onInit 和 un.onInit 中判斷一下,如果安裝包是在32位操作系統(tǒng)上運(yùn)行,則停止安裝。

可創(chuàng)建一個宏,然后在需要的地方插入。
!macro TIP_WHEN_AMD64_INSTALLER_RUNAT_X86
 !ifdef LIBRARY_X64
  ${If} ${RunningX64}
  ${else}
     MessageBox MB_OK|MB_ICONINFORMATION "請?jiān)?4位操作系統(tǒng)下運(yùn)行。"
   Abort
  ${EndIf}
 !endif
!macroend

Function .onInit
 !insertmacro TIP_WHEN_AMD64_INSTALLER_RUNAT_X86
 SetShellVarContext all  ;安裝到所有用戶下,current 表示安裝到當(dāng)前用戶下, all 表示所有用戶下。
FunctionEnd

Function un.onInit
 !insertmacro TIP_WHEN_AMD64_INSTALLER_RUNAT_X86
 SetShellVarContext all
FunctionEnd

 

備注:
1、在 NSIS 中的條件編譯是 !開頭,不是 #開頭,如!ifdef。
2、對COM組件,我認(rèn)為應(yīng)該是使用 NOTSHARED 方式注冊。
3、可以做個批處理文件,一次性生成32位/64位的安裝包。
 如 x.bat
 rem "記得要把安裝腳本中的 !define LIBRARY_X64 注釋掉,否則不能生成32位安裝包。"
 makensis .\myinstaller.nsi
 makensis /DLIBRARY_X64 .\myinstaller.nsi
 pause
 

posted on 2012-03-08 12:51 王海光 閱讀(6255) 評論(0)  編輯 收藏 引用 所屬分類: NSIS
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久亚洲综合| 一区二区三区av| 欧美日韩一区在线播放| 欧美巨乳在线| 欧美日韩大片一区二区三区| 欧美精品亚洲精品| 欧美视频免费看| 国产精品一区二区你懂得 | 免费短视频成人日韩| 蜜桃av一区二区在线观看| 免费视频最近日韩| 欧美日韩在线一区二区三区| 国产精品麻豆va在线播放| 国产麻豆一精品一av一免费| 韩国视频理论视频久久| 日韩亚洲欧美成人一区| 亚洲免费视频一区二区| 久久综合综合久久综合| 日韩一区二区电影网| 欧美一区二区视频免费观看| 欧美大片va欧美在线播放| 国产精品综合| 日韩网站在线| 久久精品首页| 亚洲最新视频在线| 久热精品视频在线观看| 国产精品久久久久免费a∨大胸| 在线不卡欧美| 亚洲女同同性videoxma| 亚洲第一福利在线观看| 中日韩美女免费视频网站在线观看| 亚洲欧美在线一区| 欧美精品福利视频| 亚洲高清网站| 久久久精品久久久久| 亚洲免费久久| 欧美大片免费看| 在线观看成人av| 欧美一区二区三区婷婷月色| 久久精品在线| 性久久久久久久久| 欧美色大人视频| 91久久在线观看| 久久影院午夜片一区| 亚洲一区www| 欧美亚一区二区| 一本色道久久综合一区| 亚洲国产小视频在线观看| 久久精品一区中文字幕| 国产日韩欧美一区二区三区四区| 亚洲激情av| 欧美粗暴jizz性欧美20| 久久婷婷影院| 一区二区三区在线免费视频| 久久久久久亚洲精品杨幂换脸| 亚洲图片欧美日产| 国产精品多人| 亚洲综合激情| 亚洲一区二三| 国产视频综合在线| 久久久另类综合| 久久久成人网| 亚洲高清不卡在线观看| 欧美国产精品久久| 欧美精品亚洲一区二区在线播放| 亚洲美洲欧洲综合国产一区| 最新国产乱人伦偷精品免费网站| 欧美成人高清| 一区二区三区欧美在线| 一区二区av在线| 国产精品视频yy9299一区| 久久大综合网| 每日更新成人在线视频| 99视频有精品| 亚洲一区在线视频| 国产一区二区三区精品欧美日韩一区二区三区 | 美女主播一区| 亚洲精品一区二区三区不| 亚洲激情中文1区| 欧美日韩国产综合视频在线观看中文| 亚洲视频电影图片偷拍一区| 亚洲图片在线| 尤物yw午夜国产精品视频明星| 欧美国产免费| 欧美日韩一区二区欧美激情| 亚洲欧美日韩在线高清直播| 欧美资源在线观看| 亚洲片国产一区一级在线观看| 亚洲精品视频在线| 国产专区欧美专区| 日韩午夜激情| 国语自产精品视频在线看抢先版结局 | 一本色道久久88亚洲综合88| 国产欧美日韩一级| 亚洲电影激情视频网站| 国产精品九色蝌蚪自拍| 另类欧美日韩国产在线| 欧美三级视频在线观看| 另类天堂av| 国产精品白丝jk黑袜喷水| 免费欧美网站| 国产精品视频xxx| 欧美第一黄色网| 国产精品无人区| 亚洲国产一二三| 精品99一区二区| 日韩视频不卡| 亚洲激情综合| 久久超碰97中文字幕| 亚洲午夜电影网| 麻豆av一区二区三区久久| 午夜电影亚洲| 欧美激情国产日韩精品一区18| 久久国产一区| 国产精品久久久久9999| 亚洲国内自拍| 亚洲国产精品va在线看黑人| 午夜欧美大尺度福利影院在线看| 亚洲日本理论电影| 欧美在线免费视屏| 亚洲欧美日韩区| 欧美日韩伦理在线免费| 亚洲高清在线精品| 精品福利免费观看| 欧美一站二站| 久久国产精品久久久久久| 国产精品扒开腿做爽爽爽软件| 亚洲激情av| 亚洲精品免费一二三区| 久久久欧美精品| 久久久噜噜噜久久狠狠50岁| 国产欧美精品日韩精品| 亚洲影视在线| 欧美在线观看视频| 国产女精品视频网站免费| 午夜国产精品视频| 久久久精品动漫| 狠狠久久亚洲欧美专区| 欧美一区激情| 久久综合久色欧美综合狠狠| 黑人极品videos精品欧美裸| 久久免费视频一区| 欧美国产精品v| 日韩视频免费观看高清完整版| 免费看精品久久片| 亚洲欧洲精品一区| 亚洲一区二区精品在线| 国产精品色婷婷久久58| 欧美在线观看你懂的| 免费在线国产精品| 亚洲国产一区在线| 欧美a级片网站| 夜夜嗨av一区二区三区四季av| 亚洲视频在线看| 国产精品欧美激情| 久久精品国产77777蜜臀| 欧美在线观看视频在线| 久久永久免费| 亚洲国产日韩美| 欧美日韩精品| 午夜综合激情| 欧美顶级艳妇交换群宴| 中文在线不卡| 国产毛片精品国产一区二区三区| 久久国产日本精品| 亚洲第一色在线| 亚洲欧美综合精品久久成人| 狠狠色狠狠色综合日日小说| 欧美大色视频| 午夜国产精品视频免费体验区| 欧美夫妇交换俱乐部在线观看| 亚洲一区精彩视频| 亚洲高清一区二| 欧美日韩中文字幕在线视频| 欧美在线观看一区| 99在线精品视频在线观看| 久久电影一区| 一区二区日韩| 在线日韩电影| 国产精品多人| 欧美成年视频| 久久成人这里只有精品| 99re视频这里只有精品| 老色鬼精品视频在线观看播放| 99视频在线观看一区三区| 韩国成人精品a∨在线观看| 欧美视频在线观看 亚洲欧| 久久久久久久波多野高潮日日| 99在线精品视频| 亚洲国产高清在线观看视频| 久久久久免费| 性欧美大战久久久久久久免费观看| 91久久综合| 在线观看成人一级片| 国产亚洲二区| 国产麻豆一精品一av一免费| 欧美三级精品| 欧美日韩三级| 欧美精品一区二区高清在线观看| 欧美伊人久久|