我使用电子和Angular2为Windows创建桌面应用程序,并且可以成功地生成用于安装的.exe和.msi文件。我使用电子包装机来封装我的电子应用程序封装电子应用程序。
在打包应用程序之后,我使用电子winstaller从包中生成msi。
不过,当我运行C:\Users\Username\AppData\Local\ApplicationName文件时,它会自动将我的项目安装到.msi。双击msi时唯一的事情是这个简短的对话框:对话框
不过,我想让安装程序提示我到应该安装应用程序的地方。我希望能够在安装时设置安装路径。
我还应该提到,我尝试使用电子构建器,也可以生成msi文件。但在这里,我也不能设置安装路径。我发现了一个使用电子生成器创建电子创建MSI安装程序问题,其他人对电子生成器也有同样的问题,但他的问题没有答案。
这是我的电子收割机的配置。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"
}
}我可能需要证书吗?问安装到哪里不是windows安装程序的默认设置吗?
发布于 2017-12-07 20:50:48
electron-winstaller使用松鼠生成安装文件。根据他们的\%LocalAppData%\AppName,安装路径“实际上是不可变的”,并且硬设置为文档:
安装位置 Setup.exe和以后的UpdateManager在MyApp中必须具有将文件写入应用程序安装位置并执行文件的能力。为了确保所有类型用户的权限,选择用户的应用程序数据目录作为安装位置(即%LocalAppData%\MyApp)。 安装根目录实际上只需要由两种类型的文件夹组成: 软件包-用于下载和组装更新包文件的文件夹。应用程序文件夹-为给定版本的MyApp“安装”应用程序文件。3.LocalAppData%\MyApp \packages MyApp-1.0.0.nupkg MyApp-1.0.1-delta.nupkg MyApp-1.0.1.nupkg \app-1.0.0 MyApp.exe \app-1.0.1包目录是有效不变的,它只是由我们下载的包组成。使用用户的本地应用程序数据目录意味着我们在每个用户的基础上对安装目录进行必要的写入访问。 提示:有关确保将应用程序推送到企业环境中的所有用户的更多信息,请参见机器安装。
安装计算机的方法是使用MSI,它只在下一个用户登录时触发安装:
全机安装 松鼠的Releasify命令生成一个适合通过组策略安装的MSI文件。这个MSI不是一个通用的安装程序,这意味着一旦你运行MSI,用户从现在起将安装应用程序,在下一个登录。 因此,大多数普通用户应该继续运行Releasify生成的Setup.exe,但是如果您想拥有一个IT管理友好版本,则可以放弃MSI 松鼠的大多数用户不必做任何新的事情来启用这种行为,尽管某些NuGet包ID/名称可能会导致MSI出现问题。
https://stackoverflow.com/questions/40301673
复制相似问题