当前位置: 首页 > 知识库问答 >
问题:

在Inno安装命令行中使用DIR开关

萧允晨
2023-03-14

我创建了这个简单的脚本:

[ISPP]
; SignTool parameters
#define SignedDesc "$qxxx$q"
#define SignedPfx "$qxxx$q"
#define SignedTimeStamp "$qhttp://timestamp.verisign.com/scripts/timestamp.dll$q"
#define SignedPw "$qxxx$q"

#define AppURL "http://www.publictalksoftware.co.uk"
#define AppPublisher "Andrew Truckle"

[Setup]
DisableReadyPage=True
DisableReadyMemo=True
DisableFinishedPage=True
UsePreviousSetupType=False
UsePreviousTasks=False
UsePreviousLanguage=False
FlatComponentsList=False
AlwaysShowComponentsList=False
ShowComponentSizes=False
AppName=Public Talks Help Documentation
AppVersion=19.0.0
CreateAppDir=False
Uninstallable=no
OutputBaseFilename=PublicTalksHelpDocumentationSetup
SourceDir=D:\My Programs\2019\CommunityTalks\HelpNDoc\CHM
SignTool=SignTool /d {#SignedDesc} /du $q{#AppURL}$q /f {#SignedPfx} /p {#SignedPw} /t {#SignedTimeStamp} /v $f
AppId={{xxx}

[Files]
Source: "CommunityTalks.chm"; DestDir: "{app}"; Flags: ignoreversion
PublicTalksHelpDocumentationSetup /SP- /VERYSILENT /DIR="C:\Program Files (x86)\Public Talks" /LOG=".\TestInstallLog.txt"
2019-05-31 21:32:02.971   Log opened. (Time zone: UTC+01:00)
2019-05-31 21:32:02.971   Setup version: Inno Setup version 6.0.2 (u)
2019-05-31 21:32:02.971   Original Setup EXE: D:\My Programs\2019\CommunityTalks\HelpNDoc\CHM\Output\PublicTalksHelpDocumentationSetup.exe
2019-05-31 21:32:02.971   Setup command line: /SL5="$15002A,25665310,721408,D:\My Programs\2019\CommunityTalks\HelpNDoc\CHM\Output\PublicTalksHelpDocumentationSetup.exe" /SPAWNWND=$30900 /NOTIFYWND=$30914 /SP- /VERYSILENT /DIR="C:\Program Files (x86)\Public Talks" /LOG=".\TestInstallLog.txt"
2019-05-31 21:32:02.971   Windows version: 10.0.17763  (NT platform: Yes)
2019-05-31 21:32:02.972   64-bit Windows: Yes
2019-05-31 21:32:02.972   Processor architecture: x64
2019-05-31 21:32:02.972   User privileges: Administrative
2019-05-31 21:32:02.973   Administrative install mode: Yes
2019-05-31 21:32:02.973   Install mode root key: HKEY_LOCAL_MACHINE
2019-05-31 21:32:02.973   64-bit install mode: No
2019-05-31 21:32:02.979   Created temporary directory: C:\Users\ajtru\AppData\Local\Temp\is-1NT54.tmp
2019-05-31 21:32:03.227   Calling RestartManager's RmGetList.
2019-05-31 21:32:03.350   RmGetList finished successfully.
2019-05-31 21:32:03.350   RestartManager found no applications using one of our files.
2019-05-31 21:32:03.356   Starting the installation process.
2019-05-31 21:32:03.360   -- File entry --
2019-05-31 21:32:03.360   Dest filename: C:\WINDOWS\CommunityTalks.chm
2019-05-31 21:32:03.364   Time stamp of our file: 2019-05-30 18:35:24.000
2019-05-31 21:32:03.364   Installing the file.
2019-05-31 21:32:03.539   Successfully installed the file.
2019-05-31 21:32:03.539   Installation process succeeded.
2019-05-31 21:32:03.539   Need to restart Windows? No
2019-05-31 21:32:03.541   Deinitializing Setup.
2019-05-31 21:32:03.557   Log closed.

通知?它为什么要将其安装到Windows文件夹中?

2019-05-31 21:32:03.360 Dest文件名:c:\windows\communitytalks.chm

我如何指定我真正想要安装文件的文件夹?

Source: "CommunityTalks.chm"; DestDir: "{param:InstallPath}"; Flags: ignoreversion
// Returns the path where the program was last installed
function GetPathInstalled( AppID: String ): String;
var
    sPrevPath: String;
begin
    sPrevPath := '';
    if not RegQueryStringValue( HKLM,
        'Software\Microsoft\Windows\CurrentVersion\Uninstall\'+AppID+'_is1',
        'Inno Setup: App Path', sPrevpath) then
        RegQueryStringValue( HKCU, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\'+AppID+'_is1' ,
                            'Inno Setup: App Path', sPrevpath);

    Result := sPrevPath;
end;

共有1个答案

宗政文彬
2023-03-14

引用createappdir文档:

如果将此设置为,则不会为应用程序创建任何目录,也不会显示选择目标位置向导页,并且{app}目录常量等效于{win}目录常量。

 类似资料:
  • 场景是我们编写了一个控制台应用程序,我们希望在Inno设置期间调用该应用程序并读取其输出。与此问题相反,当其他程序仍在运行时,必须从Inno设置读取此输出。输出将包含runnig应用程序的进度信息(double或int值),我们希望用ProgressGauge在Inno中显示这些信息。该应用程序是一个用C#编写的简单可执行程序,可以运行几秒钟到几分钟。 这可能吗?如果可能,是否可以在不冻结Inno

  • 我有两个二进制文件,必须为它们创建一个服务。我尝试了一个解决方案,使用“SC创建”从如何安装Windows服务与Inno安装?

  • 我正在使用Visual Studio Code,但我无法运行“在路径中安装代码命令”选项,因为当我键入Shift Ctrl P时,此命令不会出现。我正在使用Windows 10和最新版本的Visual Studio Code。 我尝试了许多步骤来解决我的问题,但没有成功。以下是我所做的: 重新安装了Visual Studio Code(最新版本),并检查了要添加到PATH变量的选项。不起作用。 打

  • 我想首先将现有文件“我的程序旧”重命名为“我的程序v2”,但前提是“我的程序v2”还不存在。 然后我想将“我的程序”重命名为“我的程序旧”,但前提是“我的程序旧”不存在。 然后我想从安装程序安装‘我的程序',但前提是’我的程序‘还不存在。 我将非常感谢任何指导!

  • 但清单中似乎看不到NDK包。它只显示在UI中。

  • 所以问题出现了,我有许多安装,其中大多数东西都是一样的,当然除了安装中的文件。我有一套不同的包含文件。 所以我想,“嘿,让我们简单地添加一个命令行参数来指定要包含的文件。我可以从 Pascal 代码中的命令行参数获取信息。 当我试图使用< code>#include中的信息时,问题出现了。预处理器似乎对Pascal脚本一无所知。有道理,除了我想让它知道。例如,我不能这样做: 或者这个: 所以真正的