Electron.net: Build fails with latest electron-builder version

Created on 11 Jul 2019  路  20Comments  路  Source: ElectronNET/Electron.NET


  • Version: 5.22.13

  • Target: Windows


Steps to Reproduce:

Performing a regular build with

electronize build /target win

fails since the BuildCommand seems to pass invalid CLI arguments to electron-builder.

I'm getting the following output:

C:\Project\obj\desktop\win>electron-builder . --config=./bin/electron-builder.json --platform=win32 --arch=x64
cli.js build
Build
Building:
  --mac, -m, -o, --macos   Build for macOS, accepts target list (see
                           https://goo.gl/5uHuzj).                       [array]
  --linux, -l              Build for Linux, accepts target list (see
                           https://goo.gl/4vwQad)                        [array]
  --win, -w, --windows     Build for Windows, accepts target list (see
                           https://goo.gl/jYsTEJ)                        [array]
  --x64                    Build for x64                               [boolean]
  --ia32                   Build for ia32                              [boolean]
  --armv7l                 Build for armv7l                            [boolean]
  --arm64                  Build for arm64                             [boolean]
  --dir                    Build unpacked dir. Useful to test.         [boolean]
  --prepackaged, --pd      The path to prepackaged app (to pack in a
                           distributable format)
C:\Project\obj\desktop\win>
  --projectDir, --project  The path to project directory. Defaults to current
                           working directory.
  --config, -c             The path to an electron-builder config. Defaults to
                           `electron-builder.yml` (or `json`, or `json5`), see
                           https://goo.gl/YFRJOM
Publishing:
  --publish, -p  Publish artifacts, see https://goo.gl/tSFycD
                [choices: "onTag", "onTagOrDraft", "always", "never", undefined]
Other:
  --help     Show help                                                 [boolean]
  --version  Show version number                                       [boolean]
Examples:
  electron-builder -mwl                     build for macOS, Windows and Linux
  electron-builder --linux deb tar.xz       build deb and tar.xz for Linux
  electron-builder --win --ia32             build for Windows ia32
  electron-builder                          set package.json property `foo` to
  -c.extraMetadata.foo=bar                  `bar`
  electron-builder                          configure unicode options for NSIS
  --config.nsis.unicode=false
Unknown arguments: platform, arch

Please note how the BuildCommand passes arguments for platform and arch to electron-builder, both don't seem to be supported.

I've also noticed that the BuildCommand performs a global installation of electron-builder on each run, which results in always using the latest version. This seems very prone to similar errors like this due to future breaking changes in electron-builder.

Would it be possible to simply install electron-builder locally with a fixed version? That should also solve the problem of it not working on Linux. If you're OK with that, I'd be happy to provide a PR.

Btw, this is currently totally blocking for me and I don't have any workarounds馃槉

bug

Most helpful comment

I implemented the support for the newest electron-builder.
The next update 5.22.14 will support it.

All 20 comments

Hi! I have same problem! Its the first time that I trying Electron.NET and I can't generate executable of my application...
@GeorgDangl, changing to old version will work?

@fabio-basedev, as far as I can tell, an older version won't help you either since it's internally calling the electron-builder npm package, which is always installed in the latest version:)

I think the problem with https://www.npmjs.com/package/electron-builder version 21.* if update command "npm install electron-builder --global" to "npm install [email protected] --global" application will be created as usual

@GeorgDangl steps for a workaround

  1. clone CLI project
  2. update line https://github.com/ElectronNET/Electron.NET/blob/master/ElectronNET.CLI/Commands/BuildCommand.cs#L114 by the command npm install [email protected] --global"
  3. publish CLI
  4. move electronize.dll from publish directory to folder with dotnet tools %user%.dotnet\tools.store\electronnet.cli\5.22.13\electronnet.cli\5.22.13\toolsnetcoreapp2.1any

@denisHordienko, thanks for the input!

I've created PR #289 with the fix. Looking forward to feedback!

@denisHordienko, thanks for the input!

I've created PR #289 with the fix. Looking forward to feedback!

Awesome! Here works like a charm!

Thanks!

Arghh - I can't use this fix as I'm building my releases on Azure DevOps. Any ideas when a fix will be applied to the nuget packages / Electron.net global tools?

@robalexclark, it's the same for me in my CI builds. I think you could do automate the replacement for the changed binaries in the CI environment, but that's a route I wouldn't want to go馃槈

@robertmuehsig, @GregorBiswanger, do you have an ETA for how fast you can merge this PR and create a new release? If you're not available, I can upload a fork with the fix to NuGet to be used as temporary workaround.

Hey guys, I've uploaded a temporary package with the hotfix: ElectronNET.CLI-hotfix.

You can install it via

dotnet tool install ElectronNET.CLI-hotfix -g

and just use electronize-hotfix instead of electronize. I've just tried it in one of my CI builds, I've been able to generate the app, so everything seems to work for now.

@GeorgDangl Thank you very much for your support!

We will gladly accept your PR. I think additional NuGet packages would only irritate.

For the new version, however, I have time until next week.

I can't seem to make this work. I still get the error
Unhandled Exception: System.AggregateException: One or more errors occurred. (The given key 'target' was not present in the dictionary.)
Screen Shot 2019-07-16 at 6 17 49 PM

UPDATE: the hotfix worked in CMD. I used the original electronize and it had this bit at the end.
Screen Shot 2019-07-16 at 6 52 06 PM

Hi - Any news on when updated nuget packages and tools will be published? My CI pipeline is not longer continuous...

Hi @robalexclark, I鈥榲e published the ElectronNET.CLI-hotfix Package on NuGet last week, see my comment a few posts above. You should be able to use this in the meantime.

Hey Community,
my wife was operated on the knee and my son has a high fever today. Next week Thursday I will have full time for Electron.NET again and I will get a new update going.

Hey @GregorBiswanger, no worries, sometimes there are more important things. Thank you for the great work you're doing with Electron.NET, I really appreciate it!

@GregorBiswanger I agree with @GeorgDangl , family comes first.

RESOLVED

@GeorgDangl I'm currently using your hotfix as Chrome doesn't open using the original electronize.

With your hotfix, Chrome opens and my javascript runs but I encountered a problem during startup.
This error regarding service worker registration comes up in the console.

Is there a fix for this?
Screen Shot 2019-07-22 at 6 01 29 PM

Hi @rakista112, unfortunately, I have no idea what's causing this. All I did was create a NuGet package that includes PR #289 and released it. Do you have any idea where the relevant bits of the code are? I'm not yet familiar with the Electron.NET codebase.

RESOLVED

@GeorgDangl oh it seems to be caused by my Vue build. Nothing to do with Electron. I'll just mark my comments as resolved.

I implemented the support for the newest electron-builder.
The next update 5.22.14 will support it.

Was this page helpful?
0 / 5 - 0 ratings