小编Geo*_* S.的帖子

使用电子构建器 NSIS 安装程序安装后运行时如何传递命令行参数

使用电子构建器 NSIS 安装程序,我们可以创建一个可执行安装程序,该安装程序在安装完成后立即启动已安装的电子应用程序。我的问题是,有没有办法在第一次启动时将安装程序本身启动时使用的任何命令行参数传递给已安装的应用程序?

我见过一些 NSIS 自定义脚本,这些脚本建议可以使用 启动可执行文件Exec,并且可以使用 检索安装程序参数GetParameters。这是推荐的方向,还是电子构建器或 NSIS 中有一些配置选项?

编辑:

这是一个可能的解决方案:

  • 将 Electron-builder 选项设置nsis.runAfterFinish为 false(true 是默认值);
  • 实现customInstall事件处理程序来自定义普通的电子构建器提供的模板:

    !macro StartAppWithParameters
        Var /GLOBAL startAppWithParametersArgs
        ${if} ${isUpdated}
            StrCpy $startAppWithParametersArgs "--updated"
        ${else}
            StrCpy $startAppWithParametersArgs ""
        ${endif}
        ${StdUtils.GetAllParameters} $R0 0
        ${StdUtils.ExecShellAsUser} $0 "$launchLink" "open" '$startAppWithParametersArgs $R0'
    !macroend
    
    !macro customInstall
        HideWindow
        !insertmacro StartAppWithParameters
    !macroend
    
    Run Code Online (Sandbox Code Playgroud)

详细信息位于电子构建器 NSIS 配置电子构建器 NSIS 模板中

谢谢!

nsis electron-builder

5
推荐指数
1
解决办法
2500
查看次数

WiX引导程序

我正在尝试为简单的.NET WPF C#应用程序创建安装程序。我正在使用VS 2013和WiX 3.10.2。按照Wix Tutotial / .NET /引导程序中的步骤,我创建了一个Boostrap.exe,它链接了.NET Web安装程序和应用程序Setup.msi。

编辑:我的目标是了解如何针对小更新,次要升级和主要升级方案配置WiX Bootstrap和Setup项目。

开箱即用,当我运行全新安装时,一切似乎都正常运行。但是,当我在现有安装上运行全新构建的Bootstrap.exe时,应用程序和功能中会出现重复的条目,并且应用程序目标位置中没有文件被更改-与预期相同的条目应保留在应用程序和功能中相反功能和目标位置应进行更新。编辑:看起来可能没有办法更改REINSTALLMODE?

如果我添加一个产品ID,然后更改安装程序的版本(次要升级),那么引导程序将失败,并且用户取消了安装?日志文件显示“错误0x80070642:无法执行MSI软件包的次要升级。” 编辑:在MSI日志中,SecureRepair失败,错误代码39439E438(?),可能是因为存储的哈希值与当前值不匹配...但是在较小的MSI升级中应该可以,对吧?

Boostrapper和Setup WiX项目之间是否存在建议的配置,例如小更新,次要升级和主要升级用例可以正确处理,还是WiX Bootstrapper仅支持主要升级?

我将继续进行调查,并发布最新发现;

任何提示,不胜感激,谢谢!

以下是从WiX向导生成的代码几乎未更改的源文件:

--- Product.wxs-

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="SetupProject1 1.0.0.0" Language="1033" Version="1.0.0.0" Manufacturer="Acme" UpgradeCode="4c8a8cbf-e3d0-410c-8a8d-7e67eb4e7ff7">
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perUser" InstallPrivileges="limited" />

    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
    <MediaTemplate />

    <Feature Id="ProductFeature" Title="SetupProject1" Level="1">
        <ComponentGroupRef Id="ProductComponents" />
    </Feature>
</Product>

<Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="LocalAppDataFolder">
            <Directory Id="AcmeFolder" Name="Acme">
                <Directory Id="INSTALLFOLDER" Name="WpfApplication1" />
            </Directory>
        </Directory>
    </Directory> …
Run Code Online (Sandbox Code Playgroud)

windows-installer wix

2
推荐指数
1
解决办法
1047
查看次数

标签 统计

electron-builder ×1

nsis ×1

windows-installer ×1

wix ×1