由Inno setup创建的安装游戏中的随机错误

时间:2013-05-29 19:19:58

标签: installation inno-setup istool

当我使用安装游戏的安装时,你可以。但有时候我会收到这个错误:

  

C \ game \ Scared2 \ pad \ graphics02,zip尝试时出错   复制文件:suource文件已损坏。

它可以是不同的文件。但总是它是大文件。

这是我的剧本:

[Setup]
InternalCompressLevel=ultra64
OutputDir=C:\SA
OutputBaseFilename=Instalace
VersionInfoVersion=2.65.1
VersionInfoCompany=Ascaron
Compression=lzma/ultra64
VersionInfoProductName=Sacred 2
VersionInfoProductVersion=2.65.1
DiskSpanning=true
AppName=Sacred 2
AppVerName=2.65.1
PrivilegesRequired=none
DefaultDirName={pf}\Sacred 2
DirExistsWarning=yes
DefaultGroupName=Sacred 2
AlwaysShowDirOnReadyPage=true
AlwaysShowGroupOnReadyPage=true
ShowTasksTreeLines=false
AppPublisher=Deep Silver
AppVersion=2.65.1
AppID={{EE72C138-0DFC-4C17-9859-EBC5A8AF7517}
UninstallDisplayName=Sacred 2
[Icons]
Name: {group}\Sacred 2; Filename: {app}\system\sacred2.exe; WorkingDir: {app}; IconFilename: {app}\system\sacred2.exe; IconIndex: 0
Name: {commondesktop}\Sacred 2; Filename: {app}\system\sacred2.exe; WorkingDir: {app}; IconFilename: {app}\system\sacred2.exe; IconIndex: 0
Name: {group}\{cm:UninstallProgram,Sacred 2}; Filename: {uninstallexe}

错误在哪里?谢谢你的帮助。 注意:第一个.bin文件有2 099 610 368,第二个有2 100 000 000.上一个文件很小。

1 个答案:

答案 0 :(得分:1)

我知道是什么导致了这个问题,导致问题的是SolidCompression

我怎么知道,因为它已经发生在我身上,我通过阅读有关DiskSpanning和互联网压缩的帖子来解决这个问题。

你可以使用这样的脚本在inno-setup中获得最佳压缩。只需更改名称和文件等。

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "My Program"
#define MyAppVersion "1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppExeName "MyProg.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{53C82ABA-56A0-4366-B4D3-7624CDDB2BA0}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=true
OutputBaseFilename=Setup
Compression=lzma/ultra64
SolidCompression=false
InternalCompressLevel=ultra64
DiskSpanning=True
DiskSliceSize=1566000000
SlicesPerDisk=3
UninstallDisplayIcon={app}\MyProg.exe

[Languages]
Name: english; MessagesFile: compiler:Default.isl

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked

[Files]
Source: C:\Program Files (x86)\Inno Setup 5\Examples\MyProg.exe; DestDir: {app}; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: {group}\{#MyAppName}; Filename: {app}\{#MyAppExeName}
Name: {group}\{cm:UninstallProgram,{#MyAppName}}; Filename: {uninstallexe}
Name: {commondesktop}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon

请注意SolidCompression=false

您可以通过更改此

来修改Setup - * .bin的大小
[Setup]: DiskSliceSize
Valid values:
 262144 through 2100000000, or max  
Default value:
 max (2100000000)  

描述:这指定了每个磁盘片的最大字节数(SETUP - * .BIN文件)。通常,应将此值设置为磁盘介质上可用的总字节数除以SlicesPerDisk [Setup] section指令的值,默认值为1.

如果未使用DiskSpanning [Setup]部分指令启用磁盘跨越,则忽略此指令。

要最佳地填充4.7 GB可刻录DVD,请使用:

SlicesPerDisk=3
DiskSliceSize=1566000000

要最佳地填充8.5 GB(双层)可刻录DVD,请使用:

SlicesPerDisk=5
DiskSliceSize=1708200000

要最佳填充700 MB(80分钟)可刻录CD,请使用:

SlicesPerDisk=1
DiskSliceSize=736000000

要最佳填充1.44MB软盘,请使用:

SlicesPerDisk=1
DiskSliceSize=1457664

(取自inno设置文档)。