【问题标题】:How to install 'Node JS Tools' with dotnet cli如何使用 dotnet cli 安装“Node JS Tools”
【发布时间】:2023-04-01 15:13:01
【问题描述】:

我们正在构建一个 ASP.NET Core 解决方案,并且我们最近在该解决方案中添加了一个 NodeJS 项目。现在当我们运行 CI 时,它给出了这个错误:

error MSB4019: The imported project "/usr/share/dotnet/sdk/3.1.201/Microsoft/VisualStudio/v16.0/Node.js Tools/Microsoft.NodejsToolsV2.targets" was not found. Confirm that the expression in the Import declaration "/usr/share/dotnet/sdk/3.1.201/Microsoft/VisualStudio/v16.0/Node.js Tools/Microsoft.NodejsToolsV2.targets" is correct, and that the file exists on disk.

这是有道理的,因为我们在任何时候都没有安装“NodeJS 工具”,但我们找不到如何安装这些工具。如何使用 dotnet cli 安装 NodeJS 工具?

【问题讨论】:

  • 你看过this吗?
  • 我可能有,但我们只是在构建时忽略了 Node 项目,只是手动使用终端作为快速修复,并且从未真正回头。我问这个是为了我们夏天做的一个学校项目,我不再做这个了。感谢您的帮助。

标签: node.js .net msbuild continuous-integration gitlab


【解决方案1】:

dotnet CLI 无法构建这些项目,因为这些项目所需的工具是 Visual Studio 的一部分,而不是 .NET Core 发行版或 .NET Sdk 支持的工作负载。

虽然您仍然可以在 .NET Core/标准 csproj 文件上使用 dotnet CLI,但您不能在包含 CLI 不支持的项目的解决方案文件上使用它。

但是,您可以在所有项目中使用 Visual Studio 安装中的 msbuild.exe(建议使用 VS 开发人员命令提示符),例如:

dotnet build foo.sln => msbuild -restore foo.sln

【讨论】:

  • 我理解这个问题的方式是,即使 NodeJS 项目不能使用 .NET Core SDK 构建(当然不能),dotnet CLI 可能仍然能够安装NodeJS 运行时,然后可用于构建 NodeJS 项目。
  • NodeJS 运行时不同于作为 Visual Studio 工作负载一部分的构建工具。这些基于 MSBuild 的目标不是 NodeJS 的一部分,目前不适用于 .NET CLI。
  • 我指的是dotnet CLI,可以作为工具管理器,独立于Visual Studio/msbuild工作。然后它只能作为其他工具/sdks 的代表。例如,您可以运行dotnet tool install powershell,然后使用dotnet pwsh ./yourscript.ps1 执行Powershell 脚本。无论您是否在存储库中构建 .NET 代码,您仍然可以使用此技巧在任何地方运行 Powershell。因此,如果 NodeJS 可作为自定义 .NET 工具使用,那么它可能就是 OP 正在寻找的。​​span>
  • OP 不是在寻找 NodeJS 本身,而是在 Visual Studio 工作负载的 MSBuild 目标/任务部分,称为“NodeJS 工具”。这些将需要成为 CLI / SDK 发行版本身的一部分(请参阅问题中的 sdk/3.1.201 文件夹),或者本身需要重新架构为可以单独安装的 MSBuild SDK
猜你喜欢
  • 2019-05-16
  • 1970-01-01
  • 1970-01-01
  • 2018-04-15
  • 2022-06-16
  • 1970-01-01
  • 1970-01-01
  • 2019-03-06
  • 1970-01-01
相关资源
最近更新 更多