首页 > 解决方案 > Inno Setup ReadReg运行时目标程序文件夹,将WAR文件添加到tomcat/webapps

问题描述

我想xampp\tomcat\webapps通过使用 Inno Setup 的ReadReg功能来查找Install_Dir用于 XAMPP 的 WAR 文件。这个问题类似于Inno Setup: read source path from a registry on compile time但我认为我需要的答案是翻转的。这是我所拥有的:

Source: "D:\Content.war"; \
  DestDir: "{#ReadReg(HKLM, "SOFTWARE\xampp", "Install_Dir", "DefaultDirName")}\tomcat\webapps"; \
  Flags: ignoreversion

但它不会将 WAR 文件保存到目标计算机的 XAMPP 文件夹中。请让我知道这应该如何正确结构化/编码。

标签: xamppregistryinno-setupwar

解决方案


使用脚本常量RegQueryStringValue函数

[Files]
Source: "D:\Content.war"; DestDir: "{code:GetXamppPath}\tomcat\webapps"
[Code]

function GetXamppPath(Param: string): string;
begin
  RegQueryStringValue(HKLM, 'SOFTWARE\xampp', 'Install_Dir', Result);
end;

尽管您还应该添加一些错误处理(特别是在没有这样的注册表项的情况下)。


顺便说一句,您基于脚本的答案是正确的。但它确实是另一个问题所要求的:它在编译时读取密钥 = 在机器上,它是在哪里构建的。那不是你想要的。


推荐阅读