1

我有一个只有 16 位安装程序的旧游戏(Westwood Monopoly CD-ROM),因此它无法在我的 Windows 7 x64 上运行。为了解决这个问题,我决定使用 Inno Setup 来制作一个新的安装程序。游戏本身是 32 位的,但不支持 LFN,可以在 Vista/7 上运行,但是如果我使用 Inno Setup 构建的安装程序未在检查 Windows 95 兼容性的情况下运行,游戏将会崩溃。

通过打开兼容模式生成的文件夹与未检查兼容性设置生成的文件夹之间没有文件或属性差异。但是,游戏只会在安装了兼容模式的文件夹中运行,游戏 exe (Monopoly.exe) 本身无法启用任何兼容模式选项,或者当您尝试保存、加载或选择其中一台计算机时游戏终止。播放器文件。如果在没有为安装程序设置兼容模式的情况下创建的文件夹中的 Monopoly.exe 开启了 95 的兼容模式,则游戏将加载但由于上述原因而无法播放。

我的猜测是 Windows 95 设置强制创建短文件名,而没有它,游戏无法找到它的文件,因为短文件名信息不存在。为安装程序设置兼容模式并不是理想的解决方案,因为我需要能够根据检测到的 Windows 版本复制不同的 exe(Aero 导致部分屏幕被切断,所以我使用带有更大的默认大小)。

所以我的问题是:有没有办法强制 Inno 设置在复制时创建短文件名信息,或者有没有办法在完成后用命令添加它(即修复损坏的文件夹,以便游戏可以找到它的文件)?

4

1 回答 1

1

据我所知,问题在于较新版本的 Windows Installer 和 Windows 本身不再支持使用短名称。该属性已被逐步停用,并且从 (AFIK) Vista 开始,它完全没有使用。如果您尝试包含大多数现代安装程序技术,它们会给您一个错误。你试过看DosBox吗?这也可能允许您在不需要特殊安装程序的情况下运行它。

于 2010-10-21T14:16:59.627 回答