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

Electron Electron winstaller设置Msi的安装路径

万俟飞语
2023-03-14

我正在使用Electron和Angular2为Windows创建一个桌面应用程序,并且可以成功生成.exe和.msi文件进行安装。我使用electron packager打包我的electron应用程序打包electron应用程序

打包后的应用程序,我使用电子安装程序生成一个msi从包

当我运行. msi文件时,它会自动将我的项目安装到C:\用户\用户名\AppData\本地\应用程序名。双击msi时唯一的事情是这个简短的对话框:对话框

不过,我想让安装程序提示我应该在哪里安装应用程序。我希望能够在安装时设置安装路径。

我还应该提到,我尝试使用electron builder,还可以生成msi文件。但在这里,我也无法设置安装路径。我发现这个Electron create MSI安装程序使用的是Electron builder问题,其他人对Electron builder也有同样的问题,但他的问题没有答案。

这是我对electron winstaller的配置。winstaller.js文件位于我的项目的根目录下:

var electronInstaller = require('electron-winstaller');
var resultPromise = electronInstaller.createWindowsInstaller(
  {
    appDirectory: '../installer/sda-win32-x64',
    outputDirectory: '../installer',
    authors: 'SORA Desktop Application',
    exe: 'sda.exe',
    setupExe: 'SDASetup.exe',
    setupMsi: 'SDASetup.msi',
    iconUrl: 'file:///d/dev/sda/client/src/app/assets/images/icon.ico',
    setupIcon: 'src/app/assets/images/icon.ico'
  });

resultPromise.then(() => console.log('It worked!'), e => console.log(`No dice: ${e.message}`));

这是我的package.json配置。这也是我的项目的根目录

{
  "name": "sda",
  "description": "SDA 3.0",
  "version": "0.0.1",
  "main": "gulpfile.js",
  "keywords": [
    "Angular",
    "Angular2",
    "Electron",
    "Typescript"
  ],
  "author": "Vic",
  "license": "MIT",
  "scripts": {
    "build": "gulp build",
    "start": "npm run build && electron ./dist/index.js",
    "package": "npm run build && gulp electron:package",
    "postinstall": "concurrently \"bower install\" \"typings install\"",
    "appstart": "electron ./dist/index.js",
    "test": "gulp test",
    "deploy": "rm -rf ../installer && gulp setInDevelopmentFlagToFalse && cp src/app/environment/environment.prod.ts src/app/environment/environment.ts && npm run build && cd dist && electron-packager . --platform=win32 --arch=x64 --overwrite=true --out=../../installer --icon=assets/images/icon.ico && cd ../ && gulp setInDevelopmentFlagToTrue && cp src/app/environment/environment.dev.ts src/app/environment/environment.ts && node winstaller.js"
  },
  "dependencies": {
    "@angular/common": "2.0.0",
    "@angular/compiler": "2.0.0",
    "@angular/core": "2.0.0",
    "@angular/forms": "2.0.0",
    "@angular/http": "2.0.0",
    "@angular/platform-browser": "2.0.0",
    "@angular/platform-browser-dynamic": "2.0.0",
    "@angular/router": "3.0.0",
    "@angular/upgrade": "2.0.0",
    "@ng-bootstrap/ng-bootstrap": "1.0.0-alpha.8",
    "@types/hammerjs": "2.0.33",
    "@types/sjcl": "1.0.27",
    "angular2-jwt": "0.1.23",
    "angular2-moment": "1.0.0-beta.5",
    "angular2localization": "1.0.2",
    "bootstrap": "4.0.0-alpha.4",
    "core-js": "2.4.1",
    "file-saver": "1.3.3",
    "font-awesome": "4.6.3",
    "jquery": "3.1.1",
    "moment": "2.15.2",
    "normalize.css": "5.0.0",
    "reflect-metadata": "0.1.3",
    "rxjs": "5.0.0-beta.12",
    "sjcl": "1.0.6",
    "systemjs": "0.19.27",
    "tether": "1.3.7",
    "zone.js": "0.6.23"
  },
  "devDependencies": {
    "bower": "1.7.9",
    "concurrently": "2.2.0",
    "del": "2.2.0",
    "electron": "1.3.5",
    "electron-connect": "0.6.0",
    "electron-packager": "8.1.0",
    "electron-prebuilt": "1.3.8",
    "electron-winstaller": "2.3.4",
    "eslint": "3.6.0",
    "eslint-config-google": "0.6.0",
    "eslint-plugin-html": "1.5.3",
    "gulp": "3.9.1",
    "gulp-atom-electron": "1.9.0",
    "gulp-concat": "2.6.0",
    "gulp-replace": "^0.5.4",
    "gulp-sass": "2.3.1",
    "gulp-shell": "0.5.2",
    "gulp-symdest": "1.0.0",
    "gulp-typescript": "3.0.2",
    "hammerjs": "2.0.8",
    "jasmine-core": "2.5.2",
    "karma": "1.3.0",
    "karma-chrome-launcher": "2.0.0",
    "karma-cli": "1.0.1",
    "karma-htmlfile-reporter": "0.3.4",
    "karma-jasmine": "1.0.2",
    "karma-jasmine-html-reporter": "0.2.2",
    "karma-sourcemap-loader": "0.3.7",
    "karma-typescript-preprocessor": "0.3.0",
    "run-sequence": "1.1.5",
    "typescript": "2.0.2",
    "typings": "1.3.2"
  }
}

我需要证书吗?窗口安装程序询问在哪里安装不是默认设置吗?

共有1个答案

刘琨
2023-03-14

电子安装程序使用squirrel生成安装文件。根据他们的留档,安装路径是"有效不可变的",并且硬设置为\%LocalAppData%\AppName:

安装位置

Setup.exe,随后MyApp中的UpdateManager必须能够向应用程序安装位置写入文件并执行文件。为了确保所有类型用户的权限,用户的应用程序数据目录被选择为安装位置(即%LocalAppData%\MyApp)。

安装root只需要包含两种类型的文件夹:

包-用于下载和组装更新包文件的文件夹。应用程序文件夹——给定版本的MyApp的“已安装”应用程序文件。\%LocalAppData%\MyApp\包MyApp-1.0.0.nupkgMyApp-1.0.1-delta.nupkgMyApp-1.0.1.nupkg\app-1.0.0 MyApp.exe\app-1.0.1 MyApp.exe包目录实际上是不可变的,它只是由包组成我们已经下载了。使用用户的本地应用程序数据目录意味着我们可以在每个用户的基础上对安装目录进行所需的写访问。

提示:有关确保向企业环境中的所有用户推送应用程序的详细信息,请参阅机器范围的安装。

安装机器范围的方法是使用MSI,它只在下一个用户登录时触发安装:

机器范围安装

Squirrel的Releasify命令生成适合通过组策略安装的MSI文件。这个MSI不是一个通用安装程序,这意味着一旦你运行了MSI,用户从现在起将在下次登录时安装应用程序。

因此,大多数普通用户应该继续运行由Releasify生成的Setup.exe,但是如果您想拥有一个IT管理员友好的版本,可以将MSI交给其他用户

松鼠的大多数用户不需要做任何新的事情来启用这种行为,尽管某些Nuget包ID/名称可能会导致MSI出现问题。

 类似资料:
  • 当我运行命令时,会出现以下错误: 我尝试像下面这样设置pythonpath:https://www.tutorialspoint.com/how-to-set-your-python-path-on-Mac,但没有帮助 我只是通过使用本教程插入路径:https://www.howtogeek.com/118594/how-to-edit-your-system-path-for-easy-comm

  • 我已经从http://dev.MySQL.com/downloads/connector/j/下载了MySQL“mysql-connector-java-gpl-5.1.26.msi”的JDBC驱动程序。但我想不出怎么用。http://dev.mysql.com/doc/refman/5.6/en/connector-j-binary-installation.html上的文档说明它是一个zip文

  • 主要内容:在 Linux 上安装,在 Mac 上安装,在 Windows 上安装,从源代码安装在你开始使用 Git 前,需要将它安装在你的计算机上。 即便已经安装,最好将它升级到最新的版本。 你可以通过软件包或者其它安装程序来安装,或者下载源码编译安装。 注意: 写本文作时使用的 Git 版本为 2.0.0。 我们使用的大部分命令仍然可以在很古老的 Git 版本上使用,但也有少部分命令不好用或者在旧版本中的行为有差异。 因为 Git 在保持向后兼容方面表现很好,本书使用的这些命令在 2.0

  • 完成GitBook的安装只需要几分钟。 GitBook.com GitBook.com为您提供简单高效的图书在线撰写、发布和托管方案, 你可以通过GitBook.com进行在线编辑、或者使用GitBook 本地编辑器在本地电脑上编辑。 本地安装 要求 GitBook的安装非常简单。您的系统只需满足这两个要求: NodeJS(推荐使用v4.0.0及以上版本) Windows,Linux,Unix或M

  • 本文向大家介绍MySQL5.6下windows msi安装详细介绍,包括了MySQL5.6下windows msi安装详细介绍的使用技巧和注意事项,需要的朋友参考一下 一、功能介绍 1.MySQL Servers 该功能是mysql主要的服务,也是必须安装的功能。 2.Mysql WorkBench 这个是mysql的客户端工具,可以单独下载安装程序安装。 3.Mysql Notifier 该功能

  • 本文向大家介绍AutoHotkey 安装或设置,包括了AutoHotkey 安装或设置的使用技巧和注意事项,需要的朋友参考一下 示例 从Autohotkey网站文档 转到自动热键主页。 单击下载,下载后运行可执行文件。 在安装AutoHotkey的过程中,系统会要求您选择UNICODE或ANSI。简而言之,您可能希望选择UNICODE。它支持非英语字母和数字(字符)。 继续操作,直到看到“安装”按