【问题标题】:Error while installing xml2json using node.js使用 node.js 安装 xml2json 时出错
【发布时间】:2016-01-21 05:16:24
【问题描述】:

我尝试为 node.js 安装 xml2json 包,但它给了我错误。

错误如下:

我的系统配置如下:

node.js 版本 - v5.4.1

npm 版本 - 3.3.12

操作系统 - windows 10 64 位

python - 2.7.11(设置为环境变量)

安装 microsoft windows sdk v7.1 后出现以下错误。

添加 package.json 后出现以下错误。

【问题讨论】:

  • XML2JSON 只是 Windows 中 node-expat 的一个包装器,所以你必须先安装它?
  • 在尝试安装 npm install node-expat 时它给了我同样的错误
  • 似乎与 .NET 框架有关,我假设你有这个,否则你可以从 Microsoft 免费下载它。此外,这里有一个似乎相关的外籍人士的吸引力 -> github.com/node-xmpp/node-expat/issues/57
  • .NET 框架就在那里。据我所知,Windows 10 具有内置的 .NET 框架。我在 C:/windows/microsoft.NET 中找到了 .NET 框架
  • 为什么不改变库 ;)

标签: node.js npm windows-10


【解决方案1】:

使用 msbuild(由node-gyp rebuild 触发)构建时,您必须明确指定平台工具集。试试下面的命令,先运行npm:

call "C:\Program Files\Microsoft SDKs\Windows\v7.1\bin\Setenv.cmd" /Release /x64

查看下面传递的参数的含义,来自SetEnv.cmd Usage

/Release - 创建一个Release配置构建环境

/x64 - 创建 64 位 x64 应用程序

补充说明

npm install xml2json 需要在后台使用Windows SDK 来构建项目,同时安装包时使用MSBuild。您遇到的情况是您的 Windows SDK 配置与node 要求的不兼容。

Configuring the Windows SDK Command Prompt Window 部分:

如果您没有 Visual Studio 2010,您可以使用 Windows SDK 命令提示窗口和 SetEnv 实用程序来配置您的应用程序构建设置。

所以我的建议是使用 SetEnv 实用程序来解决您的问题...

解决问题的其他方法

MSBuild 使用 VCTargetsPath 属性,由于注册表缺少该键而无法定位。

检查key是否存在并指向正确的路径

  1. 启动 regedit Navigator 到 HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\WinSDKVersion
  2. 检查 VCTargetsPath 键。该值应为“$(MSBuildExtensionsPath64)\Microsoft.Cpp\WinSDKVersion\”

如果键不存在或值错误,请按以下步骤解决问题:

  1. 启动 regedit Navigator 到 HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\WinSDKVersion
  2. 添加字符串键VCTargetsPath
  3. 将值设置为“$(MSBuildExtensionsPath64)\Microsoft.Cpp\WinSDKVersion\”

WinSDKVersion == v4.0(看起来这是您的 WinSDK 版本的值),所以将 WinSDKVersion 替换为 v4.0

【讨论】:

  • 当然,@KevalTrivedi 我的建议对你有用吗?
  • 我不知道。因为我没有得到你的答案。实际上,我是 node.js 的新手,所以请简要介绍一下您的答案。
  • 我在我的电脑上安装了 microsoft windows sdk v7.1,当我尝试运行 Setenv.cmd 文件时它会自动关闭。
  • 好的,你有没有试过在之后执行npm install xml2json
  • 知道你应该已经安装了xml2json包,用npm ls检查一下
【解决方案2】:

我相信你需要设置 VCTargetsPath 环境变量。

看看this question 的答案,有几种不同的方法。

通过执行以下操作从命令行设置它可能是最简单的方法:

set VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120"

具体路径取决于您安装的 Visual Studio 版本。

【讨论】:

  • 通过cmd设置VCTargetsPah后报同样的错误。
  • 你能告诉我你用来设置VCTargetsPath的命令,以及目录的内容吗?
  • 直接在cmd中执行上面设置的VCTargetsPath。我在 D:/ drive 中执行上述命令。
  • 目录“C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120”是否存在?如果有,它包含什么?您可能需要使用不同的目录名称,具体取决于您安装的 microsoft 工具的版本。
  • 否,缺少 MSBuild 文件夹。它在 C:\Program Files (x86)\ & C:\Program Files\ 中不可用
【解决方案3】:

您必须稍微更改您的代码
不要安装 xml2json,而是安装 xml-js
npm install --save xml-js

然后使用此代码将您的 xml 文件转换为 json

let convert = require('xml-js');
let xml = require('fs').readFileSync('./testscenario.xml', 'utf8');

let result = convert.xml2json(xml, {compact: true, spaces: 4});
console.log(result);

会有用的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-10
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    • 2017-03-20
    • 2013-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多