无法使用OpenSuse Leap 15.1的电子伪造和电子安装程序为目标win32构建

问题描述

我正在尝试制作可执行的Electron App。我正在OpenSuse Leap 15.1主机平台(Linux)上进行开发。我正在尝试为win32构建,但它给了我以下错误:

2020-11-04 08:44:08> Unhandled exception: System.IO.FileNotFoundException: Could not load file or assembly 'PresentationFramework,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35' or one of its dependencies.
File name: 'PresentationFramework,PublicKeyToken=31bf3856ad364e35'
  at Squirrel.Update.Program.main (System.String[] args) [0x00060] in <9e2ab352f8944769b3794933dd42e8f9>:0 
2020-11-04 08:45:20> Unhandled exception: System.IO.FileNotFoundException: Could not load file or assembly 'PresentationFramework,PublicKeyToken=31bf3856ad364e35'
  at Squirrel.Update.Program.main (System.String[] args) [0x00060] in <9e2ab352f8944769b3794933dd42e8f9>:0 

这是我的package.json文件:

{
  "name": "mailer-boy","version": "1.0.0","description": "An email client for IMAP server","main": "index.js","scripts": {
    "test": "echo \"Error: no test specified\" && exit 1","start": "electron-forge start","package": "electron-forge package","make": "electron-forge make"
  },"keywords": [],"author": "","license": "ISC","devDependencies": {
    "@electron-forge/cli": "^6.0.0-beta.54","@electron-forge/maker-deb": "^6.0.0-beta.54","@electron-forge/maker-rpm": "^6.0.0-beta.54","@electron-forge/maker-squirrel": "^6.0.0-beta.54","@electron-forge/maker-zip": "^6.0.0-beta.54","electron": "^10.1.5","electron-winstaller": "^4.0.1"
  },"dependencies": {
    "base64-stream": "^1.0.0","electron-squirrel-startup": "^1.0.0","html-to-text": "^6.0.0","node-imap": "^0.9.6","underscore": "^1.11.0"
  },"config": {
    "forge": {
      "packagerConfig": {},"makers": [
        {
          "name": "@electron-forge/maker-squirrel","config": {
            "name": "mailer_boy"
          }
        },{
          "name": "@electron-forge/maker-zip","platforms": [
            "darwin"
          ]
        },{
          "name": "@electron-forge/maker-deb","config": {}
        },{
          "name": "@electron-forge/maker-rpm","config": {}
        }
      ]
    }
  }
}

这是我尝试过的命令:

> npm run make --targets @electron-forge/maker-squirrel
> npm run make --platform linux --targets win32

以上命令一直忽略目标,只是为Linux构建了一个应用程序(添加了deb和rpm软件包之后)。我也尝试过:

winstaller.js

const createWindowsInstaller = require('electron-winstaller').createWindowsInstaller
const path = require('path')

getInstallerConfig()
  .then(createWindowsInstaller)
  .catch((error) => {
    console.error(error.message || error)
    process.exit(1)
  })

function getInstallerConfig () {
  console.log('creating windows installer')
  const rootPath = path.join('./')
  const outPath = path.join(rootPath,'out')

  return Promise.resolve({
    appDirectory: path.join(outPath,'mailer-boy-linux-x64'),authors: 'Abrar H Galib',noMsi: true,outputDirectory: path.join(outPath,'windows-installer'),exe: 'mailerboy.exe',setupExe: 'MailerboyInstaller.exe',});
}

在Node.js上运行上述操作会出现上述错误。如何从平台上定位Win32?我是否缺少任何依赖关系?我安装了dotnet-sdk,dotnet-runtime,但这没有帮助。谢谢。

修改

我最终使用了朋友的Windows笔记本电脑来构建Windows应用程序。这有点痛苦。我非常想知道是否可以从Linux构建Windows和MacOS。如果没有,继续使用Electron会带来一些不便(也无用)。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)