在 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
目录或任何东西,选择配置并重建设置。
我的配置屏幕:
为什么我无法在列表中 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
目录或任何东西,选择配置并重建设置。