【发布时间】:2020-05-03 15:45:12
【问题描述】:
我正在全新安装 Windows 10 Pro (10.0.18362) 并尝试为 .NET Core 3.1 Web 开发设置和配置 Visual Studio 2019,但遇到了几个问题。
我创建了一个默认的 React.js ASP.NET Core Web 应用程序并运行了该项目。一切似乎都很好,只是在更新 JavaScript 代码后,浏览器会在相当长的暂停后更新。事情似乎落后了。
从默认 Web 应用(无更新)关闭 Visual Studio 2019 后,有几个进程似乎挂起,必须手动关闭:
除了手动安装 Node.js V12.4 和 V13.6 之外,我还尝试使用 Visual Studio 安装程序提供的 Node.js 安装 Visual Studio 2019,结果相同。
另一个问题:如果我使用 npx create-react-app client-app --typescript 将项目从 JavaScript 更新到 TypeScript,热更新将完全停止工作。但是在更新 JavaScript 代码并刷新浏览器之后,事情似乎更新了,所以它似乎正在重新编译。我试过在 Firefox 和 Chrome 中调试,结果都一样。
我非常犹豫是否继续使用此安装,因为在这些过程中我遇到了几个问题。如果它们意外挂起并且没有关闭,它们将继续使用旧版本的代码,并且在进程关闭之前所做的任何事情都不会更新,从而导致完全的精神错乱。
我是否需要执行特定的安装过程作为解决方法?还是我可能缺少 NuGet 包或附加组件?由于这是全新安装的操作系统,是否需要安装 Windows 功能?或其他可能导致此问题的配置/权限更改?
在此安装之前,只有在 Visual Studio 2017 中创建的项目似乎可以按预期工作。但是我需要在 .NET Core 3.0 中开发这个网站,而且看起来只支持 Visual Studio 2019。
更新
经过一番折腾,看起来是 Node 引起了问题。如果我手动关闭 Node 进程,那么 Visual Studio 最终会关闭——但它会保留其他进程,如 VSCompiler 和控制台运行。即使我以管理员身份运行 Visual Studio,也会发生这种情况。
我应该在 Visual Studio 之前安装节点,还是反之亦然?是否有可能我需要使用 Visual Studio 或 Node 执行一些设置才能让事情正常工作?
更新 2
在没有找到任何修复程序后,我尝试完全重新安装 Windows,包括磁盘格式,然后只安装了 Visual Studio 和 Node.js。
我在执行此操作时发现了一件有趣的事情:我最初只安装了 Visual Studio,并同时选择了“Web 开发”和“NodeJS 开发”。但是,当我尝试在不进行任何更改的情况下运行新的 .NET Core Web 应用程序时,我收到一条错误消息,指出未安装 Node.js — 即使我能够在 Visual Studio 下的 MsBuilds 文件夹中找到 node.exe .
我完全卸载了 Visual Studio 和所有其他组件,安装了 Node.js,然后是 Visual Studio,但问题仍然存在。每当我尝试使用 SPA 模板运行任何类型的 JavaScript 时,Node.js 进程都不会关闭。如果我终止 Node.js 进程,那么 Visual Studio 最终将关闭,但它会留下 Console Window Host 和 VBCSCompiler 运行,必须手动关闭。
我还尝试创建一个新的 .NET Core Web 应用程序,但这次选择了 Angular 模板,它工作得更好:热重载工作,它似乎运行得更快。但是进程仍然没有关闭。唯一的区别是杀死 Node.js 进程不会让 Visual Studio 关闭。
更新 3
也不确定这是否有帮助,但我尝试将node.exe 属性设置为“以管理员身份运行此程序”以查看它是否恰好是权限问题。这产生了相同的结果。但是我注意到会弹出两个窗口:第一个是空白窗口,然后是实际的 Angular 服务器窗口。
我不确定它是否相关,但是当我再次尝试运行 Angular 应用程序时,看起来 Angular 指向的另一个(随机)端口比项目调试设置中设置的端口。
我注意到的一件事是通常的服务器消息没有显示在输出窗口中。它以前显示node.js 消息,例如“服务器正在运行”和其他编译器消息,但现在它只显示.NET 输出。
更新 4
越来越近,我卸载了 Visual Studio 和 Node.js,然后确保从我的 AppData 和 User/Local 目录中清除所有剩余的 Visual Studio 和 node_modules 文件夹,然后进行磁盘清理。最后,我重新安装了 Visual Studio(确保以管理员身份运行安装程序)并重新安装了 Node.js。
我以管理员身份运行 Visual Studio 并创建了一个新的 Angular 应用程序。现在,Angular 应用程序按预期工作,HMR 工作并且一切似乎运行顺利除了进程仍然挂起。主要区别在于,杀死 Microsoft Visual Studio 2019 进程会杀死所有东西,而在它离开 VBSCCompiler、Node.js 和控制台运行之前。
创建 React 应用时,一切正常。但是,同样,HMR 不起作用,并且还会让进程继续运行。关闭主要的 Visual Studio 进程似乎现在也可以清理这些了。
【问题讨论】:
-
是否有防病毒软件干扰?
-
@IanKemp 不,我进行了完整的重新安装,包括格式并再次尝试,没有安装除 VisualStudio 2019 和 Node.js 之外的任何其他软件,结果相同
-
我建议使用 Visual Studio 中内置的反馈工具向 Microsoft 提出支持案例。
-
@IanKemp 我已经这样做了,waiting on a reply
-
我在 Visual Studio Code 中的反应模板应用程序中遇到了同样的问题。很遗憾他们因为
low priority而关闭了您打开的支持案例。
标签: node.js reactjs typescript visual-studio-2019 asp.net-core-3.0