为什么 Visual Studio 在错误的文件夹中查找我的 gulpfile?

Why is Visual Studio looking for my gulpfile in the wrong folder?

背景故事

我一直在尝试在Visual Studio中建立一个项目,它使用GulpJS编译Sass。有人告诉我 VS 应该自动识别项目中的 package.json 和 运行 npm install,但我必须通过命令行手动执行此操作。即便如此,当我打开 Task Runner Explorer 时,它仍显示有 (No tasks found)。我和我的同事查找了对其他人有效的解决方案,其中许多报告在重启 VS、清除一些缓存数据或重新安装节点模块后成功;但是 none 对我有用。以下是我尝试过的一些解决方案:


问题

经过一些挖掘,我发现了包管理器控制台,并决定也许我可以 运行 gulp 通过它而不是打开一个单独的 CMD window。但是,当我这样做时,我得到了以下信息:

[11:27:43] Local gulp not found in C:\
[11:27:43] Try running: npm install gulp

我的直接想法是我可能需要重新安装依赖项,所以我 运行 npm install 得到了这个输出:

npm : npm WARN enoent ENOENT: no such file or directory, open 'C:\package.json'
At line:1 char:1
+ npm install
+ ~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (npm WARN enoent...:\package.json':String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

npm WARN !invalid#1 No description
npm WARN !invalid#1 No repository field.
npm WARN !invalid#1 No README data

npm

WARN
 !invalid#1 No license field.

这是我注意到它正在寻找 C:\package.json 而不是我的项目目录中的那个。但是,当我 运行 ls 时,它清楚地表明它位于 C:\Dev\solution-name 处的解决方案根目录中。我尝试使用 cd Presentation\Nop.Web 导航到特定项目,但我仍然得到它在 C:\ 根目录中查找的结果。谁能解释为什么会这样以及我该如何解决?

我终于弄明白了(再过一天,我会为这个问题提供赏金),这不是 VS 的问题。当我第一次开始使用这台特定的计算机并且仍在使用 Windows' 默认命令提示符时,我不喜欢它默认从 %USERPROFILE% 开始。因此,我寻找一种更改默认值的方法,并偶然发现了一个注册表 "hack",它在 cmd.exe 启动时本质上是 运行s cd C:/。然而,事实证明这会导致其他命令行工具,包括 Powershell 和 VS 的包管理器 运行 该命令。

如果其他人遇到此问题(由于这种情况的性质,我怀疑有人遇到过),您可以尝试执行以下步骤:

  1. 打开注册表编辑器。我是通过使用 Windows 运行 工具 (Win + R) 并输入 regedit 来完成的。
  2. 导航至 HKEY_CURRENT_USER > SOFTWARE > Microsoft > Command Processor
  3. 删除 AutoRun(或将其值更改为不会干扰您的工作流程的值)。

更多信息here

Original Registry Tutorial(请注意,如果我再向下滚动一点,我可能会避免这种情况。)