在 VS 2022 中为 x64 配置可视化和安装程序

Configuring Visual & Installer in VS 2022 for x64

我的配置屏幕:

为什么我无法在列表中 select x64?在闹钟行的下拉列表中有添加/编辑。但不适用于 AlarmClockSetup.

我正在发布分步教程,因为 Configuration 在 Visual Studio 中的工作方式与 Inno Setup 不同:

假设用户想要构建2个安装程序:对于32位和64位OS(两个单独的设置。exe-s).

为此使用标准 Visual Studio 配置管理器对话框定义 2 Visual Studio 配置 ,为它们选择任何名称,我选择了: “setup32”和“setup64”,结果将如下所示:

对于 EACH 配置,在项目属性中定义一些符号(在本例中称为 conf),如下所示:conf=$(Configuration)

为每个配置设置此符号很重要

现在仔细检查您是否为每个配置定义了这个符号

如果未为某些配置定义符号,您会收到“第 XXX 行错误:未声明的标识符:conf。”

用于测试配置的 Inno 脚本:

[Setup]
AppName=InnoSetupProject1
AppVersion=1.0
DefaultDirName={pf}\InnoSetupProject1
DefaultGroupName=InnoSetupProject1
UninstallDisplayIcon={app}\InnoSetupProject1.exe
Compression=lzma2
SolidCompression=yes
OutputDir=userdocs:Output
OutputBaseFilename=InnoSetupProject1
PrivilegesRequired=lowest

[Files]
Source: "Script.iss"; DestDir: "{app}"

[Icons]
Name: "{group}\InnoSetupProject1"; Filename: "{app}\InnoSetupProject1.exe"

[Code]

// Place your code here...   

procedure InitializeWIzard();
begin
    MsgBox(ExpandConstant('Configuration: {#conf}'), mbinformation,mb_ok);

#if conf == "setup32"
    MsgBox('This is setup32', mbinformation,mb_ok);
#endif

#if conf == "setup64"
    MsgBox('This is setup64', mbinformation,mb_ok);
#endif
end;

工作原理:

当您在配置下拉列表中选择“setup32”时,$(Configuration) MSBuild 变量被初始化并设置为“setup32”。

$(Configuration) 映射到符号 conf(在项目属性中定义),可在脚本中的任何位置使用。

使用它来调节使用 pre-processor #if 的设置行为,对于 Pascal 代码或任何地方如 {#conf}.

因此,当配置设置为 setup32 并构建脚本时,Inno pre-processor 会从脚本中排除不适当的部分,只有正确的消息框是显示。

使用 #if 用于脚本中的 include/exclude 文件,用于 [Setup] 部分指令,用于定义 Output目录或任何东西,选择配置并重建设置。