我正在撰写一个electron应用electron-windows-notifications,该应用依赖于NodeRT。
当我尝试安装我的项目时,每个> if not defined npm_config_node_gyp (node "C:\Applications\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild --msvs_version=2015 ) else (node "" rebuild --msvs_version=2015 )
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
_nodert_generated.cpp
NodeRtUtils.cpp
OpaqueWrapper.cpp
CollectionsConverterUtils.cpp
..\_nodert_generated.cpp : fatal error C1107: could not find assembly 'Windows.winmd': please specify the assembly search path using /AI or by setting the LIBPATH environment variable [C:\Users\moro\projects\t w-en-ty\node_modules\@nodert-win10\windows.ui.startscreen\build\binding.vcxproj]
..\NodeRtUtils.cpp : fatal error C1107: could not find assembly 'Windows.winmd': please specify the assembly search path using /AI or by setting the LIBPATH environment variable [C:\Users\moro\projects\tw-en-t y\node_modules\@nodert-win10\windows.ui.startscreen\build\binding.vcxproj]
..\CollectionsConverterUtils.cpp : fatal error C1107: could not find assembly 'Windows.winmd': please specify the assembly search path using /AI or by setting the LIBPATH environment variable [C:\Users\moro\pr ojects\tw-en-ty\node_modules\@nodert-win10\windows.ui.startscreen\build\binding.vcxproj]
win_delay_load_hook.cc
..\OpaqueWrapper.cpp : fatal error C1107: could not find assembly 'Windows.winmd': please specify the assembly search path using /AI or by setting the LIBPATH environment variable [C:\Users\moro\projects\tw-en -ty\node_modules\@nodert-win10\windows.ui.startscreen\build\binding.vcxproj]
C:\Applications\nodejs\node_modules\npm\node_modules\node-gyp\src\win_delay_load_hook.cc : fatal error C1107: could not find assembly 'Windows.winmd': please specify the assembly search path using /AI or by se tting the LIBPATH environment variable [C:\Users\moro\projects\tw-en-ty\node_modules\@nodert-win10\windows.ui.startscreen\build\binding.vcxproj]
gyp ERR! build error
gyp ERR! stack Error: `C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe` failed with exit code: 1
gyp ERR! stack at ChildProcess.onExit (C:\Applications\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:276:23)
gyp ERR! stack at emitTwo (events.js:106:13)
gyp ERR! stack at ChildProcess.emit (events.js:191:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
gyp ERR! System Windows_NT 10.0.14393
gyp ERR! command "C:\\Applications\\nodejs\\node.exe" "C:\\Applications\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--msvs_version=2015"
gyp ERR! cwd C:\Users\moro\projects\tw-en-ty\node_modules\@nodert-win10\windows.ui.startscreen
gyp ERR! node -v v6.9.5
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok
依赖项都会出现以下错误:
{{1}}
拜托,你能帮助我吗?
此问题也在此处提出:https://github.com/NodeRT/NodeRT/issues/56。
答案 0 :(得分:2)
在另一台计算机上尝试完整安装过程后,我发现了导致此问题的问题。在安装说明中,声明需要“VS 2015 Express for Windows Desktop”。但是,Visual Studio本身还不够,安装人员时也必须安装 Windows 10 SDK 。
回顾一下,这似乎是显而易见的,但对于JS-native相关技术的新手来说,在README中明确声明这一点可能很有用。 :)
答案 1 :(得分:2)
对于处理此问题的任何其他人。我通过复制Windows.winmd
来修复它这
C:\ Program Files(x86)\ Windows Kits \ 10 \ UnionMetadata \ 10.0.16299.0
到
C:\ Program Files(x86)\ Windows Kits \ 10 \ UnionMetadata
答案 2 :(得分:2)
您需要将Windows 10 SDK的安装与所需版本的NodeRT完全匹配。
按照这里的一些答案的建议,我在几个令人沮丧的小时内安装了Windows 10 SDK和Visual Studio 2015的各种版本。
最后,经过一番研究并浏览了NodeRT官方页面:
https://github.com/NodeRT/NodeRT
我看到它确切列出了每个版本的nodert所需的Windows 10 SDK。
仔细查看我的确切错误消息,我发现它在抱怨nodert-win10-cu,因此根据上一页,我需要完全安装SDK Windows 10,Build15063。这样做之后,它像魅力,但仅适用于该确切的SDK版本。某种程度上,我安装了所有SDK,但我没有安装确切的一个:)。
我希望这对其他答案没有用的人有所帮助。它们可以使您接近,但是细节很重要-使用上面的链接将Windows 10 SDK的安装与所需版本的NodeRT完全匹配。
答案 3 :(得分:0)
我也遇到以下错误:
d:\nodejs\app\node_modules\npm\node_modules\node-gyp\src\win_delay_load_hook.cc : fatal error C1107: could not find assembly 'Windows.winmd': please specify the assemb
ly search path using /AI or by setting the LIBPATH environment variable [D:\nodejs\work\app\node_modules\@nodert-win10-cu\windows.applicationmodel\b
uild\binding.vcxproj]
d:\nodejs\work\app\node_modules\@nodert-win10-cu\windows.applicationmodel\opaquewrapper.cpp : fatal error C1107: could not find assembly 'Windows.wi
nmd': please specify the assembly search path using /AI or by setting the LIBPATH environment variable [D:\nodejs\work\app\node_modules\@nodert-win1
0-cu\windows.applicationmodel\build\binding.vcxproj]
d:\nodejs\work\app\node_modules\@nodert-win10-cu\windows.applicationmodel\nodertutils.cpp : fatal error C1107: could not find assembly 'Windows.winm
d': please specify the assembly search path using /AI or by setting the LIBPATH environment variable [D:\nodejs\work\app\node_modules\@nodert-win10-
cu\windows.applicationmodel\build\binding.vcxproj]
d:\nodejs\work\app\node_modules\@nodert-win10-cu\windows.applicationmodel\_nodert_generated.cpp : fatal error C1107: could not find assembly 'Window
s.winmd': please specify the assembly search path using /AI or by setting the LIBPATH environment variable [D:\nodejs\work\app\node_modules\@nodert-
win10-cu\windows.applicationmodel\build\binding.vcxproj]
d:\nodejs\work\app\node_modules\@nodert-win10-cu\windows.applicationmodel\collectionsconverterutils.cpp : fatal error C1107: could not find assembly
'Windows.winmd': please specify the assembly search path using /AI or by setting the LIBPATH environment variable [D:\nodejs\work\app\node_modules\
@nodert-win10-cu\windows.applicationmodel\build\binding.vcxproj]
我遵循以下步骤:
创建一个文件夹(检查building.gyp文件的路径)
%ProgramFiles(x86)%/ Microsoft Visual Studio 14.0 / VC / lib / store / references
从
复制文件platform.winmd
C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ VC \ Tools \ MSVC \ 14.16.27023 \ lib \ x86 \ store \ references
从
复制文件Windows.winmd
C:\ Program Files(x86)\ Windows 套件\ 10 \ UnionMetadata \ 10.0.17763.0
帮我解决了“ platform.winmd”,“ Windows.winmd”错误!
答案 4 :(得分:0)
这是我为使Electron使windows.devices.geolocation的整个过程正常工作所做的事情。
node-gyp rebuild --msvs_version=2017
%ProgramFiles(x86)%/Microsoft Visual Studio 14.0/VC/lib/store/references
现在,该版本应该可以正常工作了。从输出文件夹运行test.js文件,以确保一切正常。
要在Electron中使用此节点插件,需要对其进行重建以匹配您正在使用的Electron的确切版本。 (否则,电子应用程序将冻结)
将整个输出文件夹复制到您的Electron应用程序文件夹中。 MyApp\windows.devices.geolocation\
等,并将具有此依赖项的顶级package.json文件修改为"windows.devices.geolocation": "file:windows.devices.geolocation"
使用MyApp\node_modules/.bin/electron --version
为我检查您的电子版本为4.0.1
运行以下命令以重建NodeRT模块以在电子环境中工作
node-gyp rebuild --target=4.0.1 --arch=x64 --dist-url=https://atom.io/download/atom-shell
现在在MyApp文件夹中运行npm install
,您的NodeRT已准备就绪。
答案 5 :(得分:0)
在这里补充一下,除了安装 C++ 工具之外,最终对我有用的是使用 -rs3
版本,而不仅仅是 nodert-win10
:
npm install @nodert-win10-rs3/windows.media