2017-02-17 1 views
11

Ich versuche, eine einfache Electron App zu schreiben, die native Windows-Benachrichtigungen verwendet. Für diese Verwendung bin ich auf electron-windows-interactive-notifications angewiesen.Kann native Windows-Bibliothek in NodeJS nicht verwenden

Wenn ich laufen npm install und danach electron-rebuild auf mein Projekt, das ich bekommen:

App threw an error during load 
Error: The specified module could not be found. 
\\?\C:\Users\moro\projects\tw-en-ty\node_modules\electron-windows-interactive-notifications\build\Release\notifications_bindings.node 
    at Error (native) 
    at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:173:20) 
    at Object.Module._extensions..node (module.js:583:18) 
    at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:173:20) 
    at Module.load (module.js:473:32) 
    at tryModuleLoad (module.js:432:12) 
    at Function.Module._load (module.js:424:3) 
    at Module.require (module.js:483:17) 
    at require (internal/module.js:20:19) 
    at bindings (C:\Users\moro\projects\tw-en-ty\node_modules\bindings\bindings.js:76:44) 

Nach einer NodeJS issue kann es eine native Abhängigkeitsproblem sein. Als ich untersuche notifications_bindings.node von dependencywalker Ich sehe folgende fehlenden direkten DLLs (unter vielen fehlenden verschachtelt):

image

Ehrlich gesagt habe ich keine Ahnung, was das Problem ist:

Können Sie mir helfen, der Problemlösung einen Schritt näher zu kommen?

Vielen Dank!

Question was also asked here

+0

wieder aufzubauen Es sieht aus wie Sie node.dll und interactivenotifications.dll fehlt (gelinde gesagt). Sind sie vorhanden neben Ihrer Hauptdatei .exe (electron.exe oder etwas anderes) –

+0

@SimonMourier danke für die Antwort. Nun, wenn ich nach fehlenden .dlls suche, sehe ich sie an folgenden Stellen: ** node.dll ** - 'node_modules \ electron \ dist \'; ** interactivnotifications.dll ** - 'node_modules \ electron-windows-interactive-notifications \ Freigabe \'; ** api -...- .dll ** - 'c: \ Programme (x86) \ Windows-Kits \ 10 \ Redist \ ucrt \ DLLs \ x64 \ api-ms-win-crt-runtime-l1-1 -0.dll '; Ich würde sagen, sie müssen relativ oder absolut referenziert werden auf die gleiche Weise wie die richtige kernel32.dll oder ole32.dll –

+1

Sie sollten sie einfach in das gleiche Verzeichnis wie die Haupt-exe (electron.exe oder andere, wenn Sie es umbenannt kopieren). Sie müssen sie nicht in \ windows \ system32 setzen –

Antwort

0

Versuchen folgende:

  • Install MS erste Visual Studio.
  • npm install --global windows-build-tools Als Administrator ausführen
  • Run Elektron .\node_modules\.bin\electron-rebuild.cmd
Verwandte Themen