Inno Setup生成的安装程序在某些系统上未显示“选择目标位置”页面

时间:2016-08-01 22:58:37

标签: inno-setup

我使用py2exe创建我的应用程序,并使用Windows 7上的Inno Setup将其打包到安装程序exe中。然后可以在Windows 7和Windows 10系统上安装以这种方式创建的安装程序。当它工作时,安装程​​序按顺序显示以下屏幕:

  1. 欢迎屏幕
  2. EULA屏幕
  3. 默认(或以前安装)位置,允许用户选择新的安装位置,
  4. 确认安装位置,
  5. 通常的安装屏幕。
  6. 这是 Inno Setup 5.5.5 或更低版本所带来的行为。

    使用 Inno Setup 5.5.7 及更高版本(未尝试5.5.6),安装程序正常创建,可以在Windows 7上进行如上设置。但是,相同的安装程序无法显示在Windows 10上进行设置时,屏幕1和3从上面的列表开始:安装程序直接从EULA屏幕开始,然后跳转到确认安装位置。确认屏幕甚至不显示安装将在哪个目录中完成。

    继续允许安装在默认位置进行,应用程序正常工作。不知道安装位置是非常烦人和不受欢迎的。

    我使用的.iss文件(见下文)在我尝试的不同Inno安装版本中是相同的。在文件中,显式设置DefaultDirName(基于应用程序的版本)。

    ; WARNING: This script has been created by py2exe. Changes to this script
    ; will be overwritten the next time py2exe is run!
    
    [Setup]
    AppName=MyApp
    AppVersion=2.0.1
    AppVerName=MyApp 2.0.1
    AppPublisher=Company, Inc.
    AppPublisherURL=www.company.com
    AppContact=support@company.com
    AppCopyright=Copyright (C) 2010-2016, Company, Inc.
    LicenseFile=license\MyAppEULA.rtf
    SetupIconFile=icons\CompanyScreeningProgram.ico
    WizardImageFile=icons\MyAppImage.bmp
    WizardSmallImageFile=icons\MyAppSmallImage.bmp
    DefaultDirName=C:\MyApp_v2.0.1
    DefaultGroupName=MyApp
    Compression=lzma
    OutputDir=F:\Python\dist\
    OutputBaseFilename=MyApp_2.0.1_Setup
    
    [Files]
    Source: "MyApp_main.exe"; DestDir: "{app}\"; Flags: ignoreversion
    Source: "lib\_bsddb.pyd"; DestDir: "{app}\lib"; Flags: ignoreversion
    ;.
    ;.
    ;.  600 lines of Source:
    Source: "mpl-data\stylelib\grayscale.mplstyle"; DestDir: "{app}\mpl-data\stylelib"; Flags: ignoreversion
    

    我还尝试在Windows 10上使用Inno Setup(5.5.7和5.5.9)打包安装程序,但它具有相同的行为。

    我想知道我需要设置其他参数,以便安装程序在Windows 10上正常工作,也适用于较新版本的Inno Setup吗?

2 个答案:

答案 0 :(得分:15)

引用revision history for Inno Setup 5.5.7

  

根据Microsoft的桌面应用程序指南的建议,DisableWelcomePage现在默认为yes。此外,DisableDirPageDisableProgramGroupPage现在默认为auto。所有先前版本的默认值均为no

结论:

  • 默认情况下,欢迎页面不再显示。要启用它,请设置DisableWelcomePage

    DisableWelcomePage=no
    

    我认为您在Windows 7上显示该页面的陈述并不正确。

  • "选择目的地位置"页面仅显示新安装,不适用于"升级"。因此,这与Windows 7与Windows 10无关。不同之处可能是您在Windows 10系统上安装了该应用程序;并且您没有在Windows 7系统上安装它。

    要始终显示该页面,请设置DisableDirPage

    DisableDirPage=no
    

如上面引用中提到的那样,建议使用默认值,因此您应该遵循它们。

答案 1 :(得分:2)

我找到了影响它的其他参数。

CreateAppDir=no

CreateAppDir页面中说:

  

如果设置为no,则不会创建应用程序的目录,将不会显示 Select Destination Location 向导页面,{app}目录常量等同于{win目录常量。如果在CreateAppDir为no时启用了卸载功能,则会在系统的Windows目录中创建卸载数据文件。