私の Inno Script インストーラーは、C: ドライブに空のフォルダーを作成しますが、1 台のマシンにのみ作成します。私がスクリプトをテストした他のすべてのマシンは、この問題なしで動作します。XP コンピュータと Windows XP 仮想コンピュータの 2 台の Windows 7 コンピュータでテストしました。これらのすべてのコンピューターでは、インストーラーはこの空のフォルダーを作成しません。
しかし、私の同僚の Windows XP コンピュータでは、C ドライブに空のディレクトリも作成することを除いて、インストーラは正常に動作します。アンインストールしてもフォルダは削除されません。
スクリプトを調べて、余分なフォルダーを作成している可能性があるものを探しましたが、何も表示されません。問題を再現できないように見えるため、解決するのは特に困難です。
ここにいる誰かが、なぜこれが起こっているのかについて考えを持っていますか?
#define MyAppName "Program1"
#define MyAppVersion "1.0"
#define MyAppExeName "program1.exe"
[Setup]
AppName=Test
AppVersion=1.0
AppPublisher=Me
AppSupportURL=www.google.com
AppUpdatesURL= www.google.com
DefaultDirName={code:getDirectory}
UsePreviousAppDir=no
DisableDirPage=yes
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
OutputBaseFilename={#MyAppName} {#MyAppVersion} Setup
Compression=lzma
SolidCompression=yes
OutputDir=output
UninstallFilesDir={code:getDirectory}
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
[Files]
Source: "test.iss"; DestDir: "{code:getDirectory}"; Flags: ignoreversion;
[Code]
var
InstallTestVersionCheckBox: TNewCheckBox;
Directory : string;
// ------------------------------
// INSTALL
// ------------------------------
procedure InitializeWizard;
var
MainPage: TWizardPage;
begin
MainPage := CreateCustomPage(wpWelcome, 'text', 'text');
// make the checkbox
InstallTestVersionCheckBox := TNewCheckBox.Create(MainPage);
InstallTestVersionCheckBox.Parent := MainPage.Surface;
InstallTestVersionCheckBox.Caption := 'Test Version';
end;
function InstallTestVersion: Boolean;
begin
Result := InstallTestVersionCheckBox.Checked;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if InstallTestVersion() then
begin
// Set the test version directory
Directory := ExpandConstant('{pf32}\Testversion');
end
else
begin
// Set the production version directory
Directory := ExpandConstant('{pf32}\Normal');
end;
end;
// Returns the correct directory
function getDirectory(Param: String): String;
begin
Result := Directory;
end;