創建安裝文件: 為IC類庫程序創建一個安裝文件

本例將介紹如何使用免費軟件"Innosetup"創建一個IC Imaging Control程序的安裝文件。
語言:Visual C++
版本:3.0.3
发布于:2007年2月12日
作者:IC Imaging Control 技術支持部
需求:IC Imaging Control >3.0.3

"Innosetup"是一款免費軟件,您可以使用它生成一個 IC Imaging Control 程序的安裝文件。 其下載地址 http://www.jrsoftware.org/. 只需一個簡單的腳本文件,Innosetup就可生成安裝文件所需的所有文檔。

本例以 "Demoapp" 程序為例,創建一個安裝文件、並將其保存在samples\vc71\demoapp目錄中。 腳本文件simplesetup.iss也將被保存在該文件夾中。 編譯后的程序 demoapp.exe 將被寫入 IC Imaging Control 安裝路徑中的 classlib\release目錄。

IC Imaging Control 的 runtime 文件都在classlib\release目錄中。 此外,我們還需要在 IC Imaging Control 目錄中創建一個叫system的目錄,用於存放 MFC runtime DLLs 和 Directshow Filters。

在建立 system 目錄後,從Windows\System32 文件夾中拷貝下列文件至system

  • Mfc71.dll
  • Msvcp71.dll (If Visual Studio 6 is used, please use the file Msvcp60.dll)
  • Msvcr71.dll
  • IAT_YUV.ax
  • DeBayerTransform.dll

下面是安裝文件的腳本,其中包括一些關於這個程序的大致信息。 您可以自己編輯這個文件,也可以通過Innosetup wizard 自動生成這個文件。

      [Setup]
      AppName=DemoApp
      AppVerName=DemoApp 1.0
      AppPublisher=The Imaging Source Europe GmbH
      AppPublisherURL=http://www.imagingcontrol.com
      AppSupportURL=http://www.imagingcontrol.com
      AppUpdatesURL=http://www.imagingcontrol.com
      DefaultDirName={pf}\DemoApp
      DefaultGroupName=DemoApp
      OutputBaseFilename=setup
      Compression=lzma
      SolidCompression=yes

      [Tasks]
      Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
    

這個程序應該被安裝在操作系統的程序目錄中(e.g. C:\Program Files)。 在腳本文件中,{pf}即代表程序目錄。 安裝文件還應該在程序目錄中新建一個子文件夾Demoapp,用於安裝示例程序。

下面是 [Files] 部分。 所有需要拷貝的文件都列於此處, 當系統把這些文件拷貝至目標文件夾時,將按照它們在下面被列出的順序進行。 {app}即代表示例程序的目錄。

      [Files]
      Source: "..\..\..\classlib\release\DemoApp_vc7.exe"; DestDir: "{app}"; Flags: ignoreversion
      ; The Dialogs.dll is only needed for the demoapp.
      Source: "..\..\..\classlib\release\Dialogs.dll"; DestDir: "{app}"; Flags: ignoreversion
      Source: "..\..\..\classlib\release\TIS_UDSHL07_vc71.dll"; DestDir: "{app}"; Flags: ignoreversion
      Source: "..\..\..\classlib\release\TIS_DShowLib07_vc71.dll"; DestDir: "{app}"; Flags: ignoreversion
      Source: "..\..\..\classlib\release\ICFilterContainer.dll"; DestDir: "{app}"; Flags: ignoreversion
      ; Use all video capture device adapers
      Source: "..\..\..\classlib\release\*.vda"; DestDir: "{app}"; Flags: ignoreversion
      ; Use all codec adapters
      Source: "..\..\..\classlib\release\*.tca"; DestDir: "{app}"; Flags: ignoreversion
      ; If frame filters are needed, uncommend the following line
      ;Source: "..\..\..\classlib\release\*.ftf"; DestDir: "{app}"; Flags: ignoreversion
    

在您為自己的程序制作安裝文件時,只需把文件名 DemoApp_vc7.exe 更改為您編寫的程序的名稱即可。

MFC runtime DLLs 和 IC Imaging Control DirectShow filters 都將被復制到 客戶計算機的 Windows\System32 目錄中,{sys}表示該目錄。 此外,所有 filters 都必須註冊。 而這項工作由 regserver 完成。

      ; System files as DirectShow Filters and MFC Runtime files.
      Source: "..\..\..\system\MFC71.dll"; DestDir: "{sys}"; Flags: sharedfile
      Source: "..\..\..\system\Msvcp71.dll"; DestDir: "{sys}"; Flags: sharedfile
      Source: "..\..\..\system\Msvcr71.dll"; DestDir: "{sys}"; Flags: sharedfile
      ; The DirectShow filters are to be registered. These files are copied a last files.
      Source: "..\..\..\system\iat_yuv.ax"; DestDir: "{sys}"; Flags: regserver sharedfile replacesameversion
      Source: "..\..\..\system\debayertransform.dll"; DestDir: "{sys}"; Flags: regserver sharedfile replacesameversion
    

腳本文件的其余部分用於控制該程序在Windows中的顯示方式。

      [Icons]
      Name: "{group}\DemoApp"; Filename: "{app}\DemoApp_vc7.exe"
      Name: "{userdesktop}\DemoApp"; Filename: "{app}\DemoApp_vc7.exe"; Tasks: desktopicon

      [Run]
      Filename: "{app}\DemoApp_vc7.exe"; Description: "{cm:LaunchProgram,DemoApp}"; Flags: nowait postinstall skipifsilent
    

在腳本中,只需將 \DemoApp_vc7.exe 更換為您編寫的程序名稱即可。

責任聲明
IC Imaging Control源代碼庫中的所有代碼均只用於教學目的,The Imaging Source Europe GmbH作為IC Imaging Control的開發製造商,不對任何由於使用本文或其中源代碼所產生的後果承擔責任。

该网站为The Imaging Source网络的一部分。其它的站点包括 公司, Imaging, 天文相機, Astronomy Cameras Blog, Blog caméras d'astronomie, 天文相機有獎競答, TX Text Control, LiveDocx, phpLiveDocxForum.