获取虚拟商店路径?

Get the Virtual Store path?

我正在安装应用程序并想为 ini 文件设置值。不幸的是,我们的主要应用程序仍然建立在一个被重定向到虚拟商店的平台上。有没有办法让 Inno Setup 直接将 ini 文件存储在虚拟存储中?

我相信甚至没有 Windows API 来检索虚拟商店的路径,更不用说使用 Inno Setup 可靠地检索它的可能性了。

不过你可以猜到是{localappdata}\VirtualStore\path

[Files]
Source: "MyProg.ini"; DestDir: "{code:GetVirtualStore|{app}}"

[Code]

function GetVirtualStore(Path: string): string;
var
  Drive: string;
begin
  Result := Path;
  Drive := ExtractFileDrive(Path);
  if CompareText(Drive, Copy(Path, 1, Length(Drive))) = 0 then
  begin
    Result := Copy(Result, Length(Drive) + 1, Length(Result) - Length(Drive));
    Result := ExpandConstant('{localappdata}\VirtualStore') + Result;
  end;
end;

您可能还应该检查该路径是否在系统驱动器上。