一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

inno setup 打包中vcredist

 icecity1306 2014-09-02
前言:
用inno setup打包的程序,要在win7下運行,缺少運行環(huán)境,所以需要安裝vcredist_x86.exe這個。將vcredist_x86.exe一起打包,并在打包腳本中寫代碼實現(xiàn)安裝程序安裝后將安裝vcredist_x86.exe。

問題:
在卸載程序后,再次安裝時,彈出了vcredist_x86.exe的修復和卸載界面,原因在于vcredist_x86.exe已經(jīng)在前一次安裝中安裝到了系統(tǒng)中了,此時不需要再次安裝了。
如何判斷vcredist_x86.exe是否已經(jīng)安裝了呢??

我搜索了論壇中的帖子,有人說是檢測windows目錄下的winsxs文件中是否有那些dll文件,如果這樣的話,我將vcredist_x86.exe解壓后其中有個cab的壓縮文件,其中有幾個dll,是否就是這些文件?那我能不能不需要安裝,直接將這些dll通過代碼拷貝到指定文件夾中?其他還有很多.sp的文件有什么作用?
另外,如果可以通過拷貝dll來免除安裝的話,拷貝的目的文件夾如何命名?有何特殊要求?

拷貝到程序所在目錄就可以了。
程序是先搜索自身所在目錄在去搜索系統(tǒng)所在目錄的。
一般打包程序的DLL都是釋放在自己所在的目錄

用到的DLL:

mfc80d.dll、mfc80ud.dll、mfcm80d.dll、mfcm80ud.dll
Microsoft.VC80.DebugCRT.manifest、
Microsoft.VC80.DebugMFC.manifest、
Microsoft.VC80.DebugOpenMP.manifest、
msvcm80d.dll、msvcp80d.dll、msvcr80d.dll 

不需要解壓縮vcredist_x86.exe

http://msdn.microsoft.com/zh-cn/library/ms235291%28v=VS.90%29.aspx

將 Visual C++ 庫 DLL 部署為私有程序集

在此方案中,只需將一個文件夾從開發(fā)計算機復制到目標計算機,并將相關程序集作為私有并行程序集來安裝,即可完成應用程序的部署工作。若要將 Visual C++ 庫部署為私有程序集,請執(zhí)行下列步驟: 

步驟

   1.

      在開發(fā)計算機上創(chuàng)建一個文件夾結構,使其與將在目標計算機上使用的文件夾結構相匹配。在本示例中,創(chuàng)建一個 \bin 文件夾并將 myapplication.exe 復制到其中。然后,創(chuàng)建一個 \bin\mylibrary 文件夾并將 MyLibrary.dll 復制到其中。
   2.

      在開發(fā)計算機上,將 Microsoft.VC90.CRT 和 Microsoft.VC90.MFC 從 %PROGDIR%\Microsoft Visual Studio 9.0\VC\Redist\x86 復制到 \bin 和 \bin\MyLibrary 中。
      [說明] 說明:

      Visual C++ 速成版在安裝期間不會在開發(fā)計算機上創(chuàng)建 %PROGDIR%\Microsoft Visual Studio 9.0\VC\Redist\。若要對使用 Visual C++ 速成版生成的應用程序重新發(fā)布 Visual C++ 庫,請使用 Visual C++ 可再發(fā)行組件包 (VCRedist_*.exe)。有關更多信息,請參見前面的“將 Visual C++ 庫 DLL 部署為共享程序集”一節(jié)。
      [說明] 說明:

      對于將 64 位應用程序部署到 64 位操作系統(tǒng),使用 \vc\redist\amd64 或 \vc\redist\ia64。
   3.

      將 \bin 文件夾復制到目標計算機。在支持基于清單的綁定的目標計算機(Windows XP Home Edition、Windows XP Professional、Windows Server 2003 和 Windows Vista)上,不需要做更多的準備工作。在不支持類似綁定的計算機(Windows 98、Windows 98 Second Edition、Windows Millennium Edition 和 Windows 2000)上,路徑中必須有 Microsoft.VC90.CRT 和 Microsoft.VC90.MFC。
      [說明] 說明:

      對于調(diào)試應用程序,請使用 \vc\redist\debug_nonredist\ 中的調(diào)試 DLL。但是,對于將 Visual C++ 庫的調(diào)試版本部署為私有程序集的應用程序,可能無法進行遠程調(diào)試。有關更多信息,請參見準備用于運行調(diào)試可執(zhí)行文件的測試計算機。
      [說明] 說明:

      如果要在目標計算機上進行遠程調(diào)試,必須復制所有調(diào)試 DLL,或者按照準備用于運行調(diào)試可執(zhí)行文件的測試計算機中的步驟來安裝調(diào)試 DLL。

有網(wǎng)友寫好的代碼??梢詤⒖家幌隆nno setup的腳本
C/C++ code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[Setup]
Your program setup
 
[Files]
; Visual C++ redist
Source: vcredist_x86.exe"; DestDir: "{tmp}"; Check: NeedInstallVC9SP1
 
[Run]
Filename: "{tmp}\vcredist_x86.exe"; Parameters: /q; WorkingDir: {tmp}; Flags: skipifdoesntexist; StatusMsg: "Installing Microsoft Visual C++ Runtime ..."; Check: NeedInstallVC9SP1
 
[Code]
var vc9SP1Missing: Boolean;
 
function NeedInstallVC9SP1(): Boolean;
begin
  Result := vc9SP1Missing;
end;
 
function InitializeSetup(): Boolean;
var version: Cardinal;
begin
  if RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9A25302D-30C0-39D9-BD6F-21E6EC160475}''Version', version) = false then begin
    vc9SP1Missing := true;
  end;
  result := true;
end;

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    激情图日韩精品中文字幕| 国产精品一区二区三区日韩av| 国产在线日韩精品欧美| 粉嫩国产美女国产av| 国产麻豆视频一二三区| 91福利视频日本免费看看| 欧美日韩乱码一区二区三区| 国产精欧美一区二区三区久久| 亚洲综合激情另类专区老铁性| 亚洲精品国男人在线视频| av国产熟妇露脸在线观看| 一区二区三区18禁看| 少妇激情在线免费观看| 欧美中文字幕日韩精品| 亚洲欧美黑人一区二区| 国产精品色热综合在线| 日本午夜免费观看视频| 中文字幕高清免费日韩视频| 欧美日韩亚洲精品在线观看| 欧美有码黄片免费在线视频| 久久碰国产一区二区三区| 欧洲精品一区二区三区四区| 中文字幕在线区中文色| 亚洲欧美日韩另类第一页| 欧美色婷婷综合狠狠爱| 91欧美日韩国产在线观看| 能在线看的视频你懂的| 五月综合婷婷在线伊人| 色偷偷偷拍视频在线观看| 亚洲精品成人福利在线| 日韩精品中文字幕亚洲| 黄片免费观看一区二区| 欧美亚洲综合另类色妞| 五月激情婷婷丁香六月网| 亚洲精品中文字幕一二三| 国产亚洲精品岁国产微拍精品| 一区二区三区日韩中文| 亚洲午夜福利视频在线| 一级片黄色一区二区三区| 亚洲一区二区三区在线免费| 国产精品视频一区麻豆专区|