1

私の 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;
4

1 に答える 1

0

同様の問題が発生する可能性がある人向け: Inno のセットアップにより、不要な空のフォルダーが突然作成されました。ようやく理由がわかりました。 [Files] セクション内に単一の空のフォルダーを作成しようとしました。それは良い考えではありません...したがって、[Dirs]セクションで空のフォルダーを作成して、良い方法で行うだけです。

こんなことしないで:

[Files]
Source: "M:\My_Empty_Folder"; DestDir: "{userdocs}\My_App_Name"; Flags: ignoreversion

これの方が良い:

[Dirs]
Name: "{userdocs}\My_App_Name\My_Empty_Folder"
于 2014-12-31T11:51:56.473 に答える