我有一个 Electron 应用程序,我正在使用 Mac 为其制作 Windows 安装程序。
现在我有一个 /installers 目录和一个处理所有 Squirrel 事件的 setupEvents.js 文件。其中大部分来自Windows 安装程序文档:
import { app } from 'electron';
module.exports = {
handleSquirrelEvent: function() {
if (process.argv.length === 1) {
return false;
}
const ChildProcess = require('child_process');
const path = require('path');
const appFolder = path.resolve(process.execPath, '..');
const rootAtomFolder = path.resolve(appFolder, '..');
const updateDotExe = path.resolve(path.join(rootAtomFolder, 'Update.exe'));
const exeName = path.basename(process.execPath);
const spawn = function(command, args) {
let spawnedProcess, error;
try {
spawnedProcess = ChildProcess.spawn(command, args, {detached: true});
} catch (error) {}
return spawnedProcess;
};
const spawnUpdate = function(args) {
return spawn(updateDotExe, args);
};
const squirrelEvent = process.argv[1];
switch (squirrelEvent) {
case '--squirrel-install':
case '--squirrel-updated':
// Optionally do things such as:
// - Add your .exe to the PATH
// - Write to the registry for things like file associations and
// explorer context menus
// Install desktop and start menu shortcuts
spawnUpdate(['--createShortcut', exeName]);
setTimeout(app.quit, 1000);
return true;
case '--squirrel-uninstall':
// Undo anything you did in the --squirrel-install and
// --squirrel-updated handlers
// Remove desktop and start menu shortcuts
spawnUpdate(['--removeShortcut', exeName]);
setTimeout(app.quit, 1000);
return true;
case '--squirrel-obsolete':
// This is called on the outgoing version of your app before
// we update to the new version - it's the opposite of
// --squirrel-updated
app.quit();
return true;
}
}
}
到目前为止,这按预期工作,除了添加到桌面的快捷方式图标的标题为“电子”,我不知道如何更改它。我的 package.json 中有一个名称和 productName:
{
"name": "my app",
"description": "my app description",
"productName": "my app",
"appCopyright": "me",
"appCategoryType": "Productivity",
...
我的安装程序配置如下所示:
{
appDirectory: path.join(outPath, 'myapp-win32-ia32/'),
authors: 'me',
noMsi: true,
outputDirectory: path.join(outPath, 'windows-installer'),
exe: 'myapp.exe',
setupExe: 'myappInstaller.exe',
setupIcon: path.join(rootPath, 'assets', 'win', 'icon.ico'),
skipUpdateIcon: true
}
我不确定在哪里告诉安装程序快捷方式图标应该有我的应用程序的名称,而不仅仅是“电子”。
提前致谢!