Qt Installer Framework 概述
Qt5可以使用官方的Qt Installer Framework框架制作安装包

The Qt Installer Framework provides a set of tools and utilities to create installers once, and deploy them across all the supported desktop Qt platforms without rewriting the source code. The installers will have the native look and feel on the platform where they are run: Linux, Microsoft Windows, and macOS.

Supported Platforms

You can use the Qt Installer Framework to create installers for all platforms supported by desktop Qt.

The installers have been tested on the following platforms:

  • Microsoft Windows 7, and later
  • Ubuntu Linux 16.04, and later
  • macOS 10.12, and later

The Qt Installer Framework tools generate installers with a set of pages that guide the users during the installation, update, or uninstallation process. You provide the installable content and specify information about it, such as the name of the product and the installer and the text for the license agreement.

You can customize the installers by adding widgets to the predefined pages or by adding whole pages to provide users with additional options. You can create scripts to add operations to the installer.

Choosing Installer Type

You can provide end users with an offline or online installer, or both, depending on your use cases.

Both installers install a maintenance tool that can later be used to add, update, and remove components. Offline installers contain all the installable components and do not require network connections during the installation. Online installers only install the maintenance tool that then downloads and installs components from an online repository on a web server. Therefore, the size of an online installer binary is smaller and its download time is shorter than that of an offline installer binary. The total time spent downloading and running an online installer might also be shorter than dowloading and running an offline installer if the end users do not install all the available components.

End users can use the maintenance tool to install additional components from the server after the initial installation, as well as to receive automatic updates to content as soon as the updates are published on the server. However, this works for an offline installation only if you specify a repository address in the offline installer configuration or if end users specify the repository address themselves in the maintenance tool settings.

Create an offline installer to enable users to directly download the installation package on a media for installation on a computer later. You can also distribute the installation package on a CD-ROM or USB stick, for example.

Create an online installer to enable users to always install the latest versions of the content binaries.


下载 Qt Installer Framework 

官方下载:http://download.qt.io/official_releases/qt-installer-framework/ 

1、选择一个Qt Installer Framework版本,我选择目前最新的4.1.1版本 


2、前面两项为压缩包,下载后解压就是一堆文件夹,没有可安装的exe,也没有找到 我们后面要打包的工具binarycreator.exe,所以就选了下面这个可以安装的exe版本,毕竟这个用的顺手。


安装Qt Installer Framework

1、点击运行exe可执行文件,进入Qt Installer Framework设置向导页面,点击“下一步”

2、选择安装路径,最好是新建一个空的文件夹, 用来存放安装的东西,选择完后点击“下一步”

3、进入许可协议页面,选择“我接受这些许可”,要用别人的软件,就必须习惯这个,尊重版权,没得办法,然后点击“下一步”

4、进入到安装页面,直接点击“安装”就好了

程序打包发布

1、先要在release模式下编译运行程序,生成release版本,也就是发布版本。在release文件下找到可执行文件exe,默认一般路径:"E:\Qt_Project\build-login-Desktop_Qt_5_11_1_MinGW_32bit-Release\release\music1.exe",如果把修改了项目的默认构建路径为当前项目,那就去当前项目文件里找,例如:"E:\Qt_Project\music1\Release\release\music1.exe",然后新建一个文件夹,把exe复制出来放到空文件夹里。

2、然后使用Qt自带的打包工具windeployqt对应用程序进行打包,其实就是把一些Qt的库或者依赖项添加进行来,可以在没安装Qt的电脑上使用exe,如果使用了Qt以外的第三方库,也需要把第三方库的依赖项添加进去,从电脑左下角的开始菜单打开Qt的命令行界面Qt 5.11.0 for Desktop(MinGW...),输入命令如下:windeployqt D:\keymanager\HttpServerDemo.exe

3、以下是打包好的文件夹示例,打包好后,点击exe测试一下能否使用,看看是否缺少第三方库或者依赖项,如果点击exe能够正常运行程序,则说明打包成功。

创建安装包程序

官方文档:http://doc.qt.io/qtinstallerframework/ifw-tutorial.html

Creating a Package Directory

Create a directory structure that reflects the design of the installer and allows the installer to be extended in the future. The directory must contain subdirectories called config and packages.

For more information about the package directory, see Package Directory.

1、首先需要创建一个包目录结构,该包目录结构必须包含名为config和packages的子目录。config包含了有关如何构建安装程序二进制文件和联机存储库的信息,packages包含有关可安装组件的信息,结构如下图所示。不过Qt Installer Framework安装目录下面有很多的示例,这里就拿startmenu来示范,复制一份出来。startmenu的一般路径D:\QtInstallerFrameworkInstall\examples\startmenu。

2、把前面打包过的文件全部复制到packages下面的data文件夹里,注意是和exe同一级目录的所有文件。

Creating a Configuration File

In the config directory, create a file called config.xml with the following contents:

<?xml version="1.0" encoding="UTF-8"?>
<Installer>
    <Name>Your application</Name>
    <Version>1.0.0</Version>
    <Title>Your application Installer</Title>
    <Publisher>Your vendor</Publisher>
    <StartMenuDir>Super App</StartMenuDir>
    <TargetDir>@HomeDir@/InstallationDirectory</TargetDir>
</Installer>

The configuration file specifies the following information that is displayed on the introduction page:

  • The <Title> element specifies the installer name displayed on the title bar (1).
  • The <Name> element specifies the application name that is added to the page name and introduction text (2).

3、修改配置文件,在config目录下,有一个config.xml文件,使用文本编辑器打开,根据自己的需求进行修改

<?xml version="1.0" encoding="UTF-8"?>
<Installer>
    <Name>可乐音乐播放器</Name>
    <Version>1.0.0</Version>
    <Title>音乐播放器安装向导</Title>
    <Publisher>Qt-Project</Publisher>
    <!-- Directory name is used in component.xml -->
    <StartMenuDir>可乐音乐播放器</StartMenuDir>
    <TargetDir>@HomeDir@/可乐音乐播放器</TargetDir>
</Installer>


 < Name> 软件名称
< Version> 版本号
< Title> 安装程序窗口标题
< Publisher> 发布者名称
< StartMenuDir> 要生成的windows开始菜单目录
< TargetDir> 默认安装路径

Creating a Package Information File

In this easy scenario, the installer handles only one component that is called com.vendor.product. To provide the installer with information about the component, create a file called package.xml with the following contents and place it in the meta directory:

<?xml version="1.0" encoding="UTF-8"?>
<Package>
    <DisplayName>The root component</DisplayName>
    <Description>Install this example.</Description>
    <Version>0.1.0-1</Version>
    <ReleaseDate>2010-09-21</ReleaseDate>
    <Licenses>
        <License name="Beer Public License Agreement" file="license.txt" />
    </Licenses>
    <Default>script</Default>
    <Script>installscript.qs</Script>
    <UserInterfaces>
        <UserInterface>page.ui</UserInterface>
    </UserInterfaces>
</Package>

The elements in the example file are described in more detail below.

For more information about the package information file, see Package Information File Syntax.

 4、修改包信息文件,在packages目录下,有一个package.xml文件,使用文本编辑器打开,根据自己的需求进行修改

<?xml version="1.0" encoding="UTF-8"?>
<Package>
    <DisplayName>README.txt</DisplayName>
    <Description>A README.txt, accessible through a start menu entry.</Description>
    <Version>1.0.0-1</Version>
    <ReleaseDate>2019-02-19</ReleaseDate>
    <Default>true</Default>
    <Script>installscript.qs</Script>


</Package>
< DisplayName> 显示的名称
< Description> 描述
< Version> 部件的版本号
< ReleaseDate> 发行日期
< Licenses> 许可信息名称以及许可文件名
<Default>默认是否选中协议
< Script> 脚本文件
< UserInterfaces> 额外的界面(如果需要的话,而且需要去installscript.qs中配置)


4、在packages目录下,有一个installscript.qs文件,使用文本编辑器打开,根据自己的需求进行修改

/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the FOO module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:GPL-EXCEPT$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
 
function Component()
{
    // default constructor
}
 
Component.prototype.createOperations = function()
{
    // call default implementation to actually install README.txt!
    component.createOperations();
 
    if (systemInfo.productType === "windows") {
        component.addOperation("CreateShortcut", "@TargetDir@/Music.exe", "@StartMenuDir@/Music.lnk",
            "workingDirectory=@TargetDir@", "iconPath=%SystemRoot%/system32/SHELL32.dll",
            "iconId=2", "description=Open README file");
    }
}


 installscript.qs 官方文档链接:

Controller Scripting | Qt Installer Framework Manual

http://doc.qt.io/qtinstallerframework/scripting.html

5、添加环境变量,将Qt Installer Framework安装文件下的bin路径添加到环境变量,重启电脑,不会添加自行百度

6、生成安装包程序,打开Qt的命令行界面Qt 5.11.0 for Desktop(MinGW...),输入以下命令,进入要生成的文件夹目录下,然后使用生成工具进行生成安装包应用

# 输入以下命令进入startmenu目录
 
D:\Qt5.11\install\5.11.0\mingw53_32>C:
C:\Windows\System32>cd C:\Users\欧阳磊\Desktop\startmenu

# 输入以下命令生成安装包程序
 
C:\Users\欧阳磊\Desktop\startmenu>binarycreator.exe -c config/config.xml -p packages install.exe -v

binarycreator.exe 的用法

Usage: binarycreator.exe [options] target

Options:
  -t|--template file        Use file as installer template binary
                            If this parameter is not given, the template used
                            defaults to installerbase.
  -p|--packages dir         The directory containing the available packages.
                            This entry can be given multiple times.
  --repository dir          The directory containing the available repository.
                            This entry can be given multiple times.
  -e|--exclude p1,...,pn    Exclude the given packages.
  -i|--include p1,...,pn    Include the given packages and their dependencies
                            from the repository.
  --ignore-translations     Do not use any translation
  --ignore-invalid-packages Ignore all invalid packages instead of aborting.
  --ignore-invalid-repositories Ignore all invalid repositories instead of aborting.
  -c|--config file          The file containing the installer configuration
  -n|--online-only          Do not add any package into the installer
                             (for online only installers)
  -f|--offline-only         Forces the installer to act as an offline installer,
                             i.e. never access online repositories
  -r|--resources r1,.,rn    include the given resource files into the binary
  -v|--verbose              Verbose output
  -rcc|--compile-resource   Compiles the default resource and outputs the result into
                            'update.rcc' in the current path.

Packages are to be found in the current working directory and get listed as their names

Example (offline installer):
  binarycreator.exe --offline-only -c installer-config\config.xml -p packages-directory -t installerbase.exe SDKInstaller.exe
Creates an offline installer for the SDK, containing all dependencies.

Example (online installer):
  binarycreator.exe -c installer-config\config.xml -p packages-directory -e org.qt-project.sdk.qt,org.qt-project.qtcreator -t installerbase.exe SDKInstaller.exe

Creates an installer for the SDK without qt and qt creator.

Example update.rcc:
  binarycreator.exe -c installer-config\config.xml -p packages-directory -rcc


# 以下是生成安装包的过程
 
[0] Parsed arguments, ok.
[4]
Collecting information about available packages...
[8] Found subdirectory "org.qtproject.ifw.example"
[10] - it provides the package "org.qtproject.ifw.example"  -  "1.0.0-1"
[14] Copying component data for "org.qtproject.ifw.example"
[19] Compressing data directory "audio"
[38] Compressing data directory "bearer"
[63] Compressing data directory "iconengines"
[76] Compressing data directory "imageformats"
[329] Compressing data directory "mediaservice"
[435] Compressing data directory "platforms"
[768] Compressing data directory "playlistformats"
[823] Compressing data directory "sqldrivers"
[1068] Compressing data directory "styles"
[1112] Compressing data directory "translations"
[1684] Compressing files found in data directory: ("D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/D3Dcompiler_47.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/libEGL.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/libgcc_s_dw2-1.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/libGLESV2.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/libstdc++-6.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/libwinpthread-1.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/music.db", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/music1.exe", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/opengl32sw.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/Qt5Core.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/Qt5Gui.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/Qt5Multimedia.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/Qt5Network.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/Qt5Sql.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/Qt5Svg.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/Qt5Widgets.dll", "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/packages/org.qtproject.ifw.example/data/README.txt")
[12233] Hash is stored in "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1audio.7z.sha1"
[12241] Creating hash of archive "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1audio.7z"
[12249] Generated sha1 hash: "ffeca0a73eadfe439bf181bc5aae46cd28f65e80"
[12253] Hash is stored in "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1bearer.7z.sha1"
[12259] Creating hash of archive "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1bearer.7z"
[12266] Generated sha1 hash: "575ba7628c5da58d117384d2efdf495ce507a318"
[12270] Hash is stored in "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1iconengines.7z.sha1"
[12276] Creating hash of archive "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1iconengines.7z"
[12284] Generated sha1 hash: "122694b718c342748771d100990eae8604a9d8e1"
[12289] Hash is stored in "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1imageformats.7z.sha1"
[12294] Creating hash of archive "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1imageformats.7z"
[12303] Generated sha1 hash: "1ac50a65a290dd9e6d6f878dab2b25af158808bb"
[12309] Hash is stored in "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1mediaservice.7z.sha1"
[12315] Creating hash of archive "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1mediaservice.7z"
[12323] Generated sha1 hash: "463cbb639b0283b86231ed36b88d86fa9579c6d2"
[12327] Hash is stored in "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1platforms.7z.sha1"
[12333] Creating hash of archive "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1platforms.7z"
[12342] Generated sha1 hash: "4f7e6857e3515e03f3c341116c58fed438052e0e"
[12345] Hash is stored in "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1playlistformats.7z.sha1"
[12352] Creating hash of archive "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1playlistformats.7z"
[12405] Generated sha1 hash: "5f4b28f321c56360ada544cf8d4eb287ce09d2d0"
[12409] Hash is stored in "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1sqldrivers.7z.sha1"
[12417] Creating hash of archive "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1sqldrivers.7z"
[12426] Generated sha1 hash: "b220571bbf43d05d0da17d93aa26aaa94415116b"
[12430] Hash is stored in "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1styles.7z.sha1"
[12437] Creating hash of archive "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1styles.7z"
[12445] Generated sha1 hash: "007e72259db84c7c455432ad8793b7db2ee978e0"
[12449] Hash is stored in "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1translations.7z.sha1"
[12456] Creating hash of archive "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1translations.7z"
[12465] Generated sha1 hash: "90b93b8a85db276cad171bf5d15b581274852964"
[12470] Hash is stored in "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1content.7z.sha1"
[12477] Creating hash of archive "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1content.7z"
[12528] Generated sha1 hash: "53cefc29b3d6b2eec6eb87a5b6d3d1f0a06eea3d"
[12533] Copy meta data for package "org.qtproject.ifw.example" using "packages/org.qtproject.ifw.example/meta/package.xml"
[12540] calculate size of directory "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/data"
[12573] Copying associated "script" file "packages/org.qtproject.ifw.example/meta/installscript.qs"
[12581] done.
 
[12583] Begin to copy configuration file and data.
[12585] Copying associated "configuration" file "D:/QtInstallerFramework/QtIFW-3.0.4/examples/startmenu/config/config.xml"
[12595] done.
 
[12596] Read dom element: <Name>Start Menu Shortcut Example</Name>.
[12599] Read dom element: <Version>1.0.0</Version>.
[12603] Read dom element: <Title>Start Menu Shortcut Example</Title>.
[12606] Read dom element: <Publisher>Qt-Project</Publisher>.
[12609] Read dom element: <StartMenuDir>Qt Installer Framework Examples</StartMenuDir>.
[12613] Read dom element: <TargetDir>@HomeDir@/IfwExamples/startmenu</TargetDir>.
[12617] done.
 
[12728] Creating the binary
[12826] Creating resource archive for "org.qtproject.ifw.example"
[12831] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1audio.7z" ("32.81 KiB")
[12837] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1audio.7z.sha1" ("40.00 bytes")
[12843] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1bearer.7z" ("23.60 KiB")
[12849] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1bearer.7z.sha1" ("40.00 bytes")
[12857] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1iconengines.7z" ("15.45 KiB")
[12863] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1iconengines.7z.sha1" ("40.00 bytes")
[12870] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1imageformats.7z" ("452.46 KiB")
[12877] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1imageformats.7z.sha1" ("40.00 bytes")
[12884] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1mediaservice.7z" ("138.68 KiB")
[12891] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1mediaservice.7z.sha1" ("40.00 bytes")
[12897] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1platforms.7z" ("651.78 KiB")
[12905] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1platforms.7z.sha1" ("40.00 bytes")
[12911] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1playlistformats.7z" ("10.77 KiB")
[12918] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1playlistformats.7z.sha1" ("40.00 bytes")
[12926] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1sqldrivers.7z" ("493.75 KiB")
[12932] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1sqldrivers.7z.sha1" ("40.00 bytes")
[12940] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1styles.7z" ("65.42 KiB")
[12946] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1styles.7z.sha1" ("40.00 bytes")
[12954] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1translations.7z" ("454.49 KiB")
[12960] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1translations.7z.sha1" ("40.00 bytes")
[12968] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1content.7z" ("16.83 MiB")
[12978] Appending "C:/Users/欧阳磊/AppData/Local/Temp/binarycreator-l9Mfi9/org.qtproject.ifw.example/1.0.0-1content.7z.sha1" ("40.00 bytes")
[13038] Cleaning up...
 
安装包程序
生成安装包程序之后,你就可以点击运行这个程序进行安装了,以下为安装示例

安装完以后,去安装目录下找到Music.exe点击运行,如果运行成功,则说明安装包是没问题的。


————————————————
版权声明:本文为CSDN博主「欧阳磊」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/mars_xiaolei/article/details/83825447

Logo

更多推荐