【问题标题】:Visual Studio 2017 File Lock Problems, reverting to old File versionsVisual Studio 2017 文件锁定问题,恢复到旧文件版本
【发布时间】:2018-07-15 17:44:14
【问题描述】:

我在使用 Visual Studio (2017) 时遇到问题,有时它无法识别更改或突然恢复到文件的旧版本,尤其是在更新 Startup.cs 等资源或其他已编译资源时。

有几次事情一直很好,突然事情爆炸了,在搜索代码后,我发现一个已经更新的文件已经回到了以前的版本。我只处理本地文件,不使用 Git 等...

我已尝试清理有时可以解决问题的整个解决方案,所以可能部分是缓存问题?

有时编译器错误会突然发生,即使在清理解决方案之后,修复它的唯一方法是关闭 VS,删除所有 objbin 文件夹,重新启动然后重建。

我注意到的一件事是有时VBSCompiler.exe 会挂起,即使在关闭 VS 并且必须手动终止之后也是如此。我还注意到,在多个显示器上使用“固定”选项卡或多个窗口会使这个问题变得更糟,更不用说打开 VS 时出现间歇性错误了。

这使我认为某些服务(可能是 IIS?)正在锁定文件,但是 VS 启动了一个新服务并打开了文件的副本,即使在确保 VBSCompiler 没有挂起之后也是如此,因为以前的服务仍然具有文件锁定,它不会覆盖文件,但不会产生错误,这让我认为文件是当前的,直到两个进程都关闭。当文件被解锁并再次打开时,它是一个旧版本。

我认为最后一个事件支持这一点,我从 VS 的解决方案中删除了一个项目,保存了解决方案,清理了解决方案,关闭了 VS,检查是否有任何类似上述的服务仍在运行并删除了该项目磁盘上的文件。我清空了回收站,但在启动 VS 之前没有让它完全完成,并收到文件 %SugZuy/ClientApp 被锁定且无法删除的错误,重启后项目已从解决方案中删除,当我关闭 VS并选择“再试一次”它能够继续。

我尝试禁用备份文件、跟踪、始终在构建之前清理整个解决方案,以及我在网上找到的关于 IIS 和 VSBCompiler 问题的一些建议,但仍然没有成功。最后一点,这一切都在全新安装的 VS(2017 社区)和 Windows 10 Pro 上,并从新的解决方案和项目(使用 .Net Core Angular 模板)开始,以尝试解决此问题。

【问题讨论】:

  • 你的VS2017版本号是多少?
  • @LasseVågsætherKarlsen Microsoft Visual Studio 社区 2017,版本 15.7.5
  • docs.microsoft.com/en-us/visualstudio/ide/… 不要浪费时间去猜测。请与 Microsoft 联系,如果可能,请向他们提供更多信息以帮助重现问题。
  • @LexLi 我已经通过我的戴尔支持合同(我做过的最糟糕的决定)以某种方式走上了这条路。我一无所获,部分原因是这个问题。

标签: c# visual-studio visual-studio-2017 asp.net-core-2.0


【解决方案1】:

我想我终于弄清楚了发生了什么,也许其他人可以提供更好的解决方案,因为我不推荐这种 hack

我已经在 VS 2017 旁边的开发机器上安装了 NodeJS,我从 Tools->Options->Projects and Solutions->Web Package Management 中删除了整个 $(VSInstallDir)\Web\External 条目,认为 VS 会使用外部 NodeJS。

然后我注意到有一个 node.exe 与其他 2 个 Node.exe 进程一起运行,当我从任务管理器打开文件位置时,果然它使用了 NodeJS 的 VS 外部工具版本和 NodeJS。

我认为这导致了一些冲突,并且基本上混淆了 VS 的某些部分,所以当某些事情挂起时,编译器 VS 认为它关闭了正确的进程并启动了一个新的 NodeJS 实例,让另一个运行仍然有文件的实例锁定。因此,当所有进程最终关闭时,使用第二个 NodeJS 实例所做的任何更改基本上都被忽略了。

我试图在 Visual Studio 中找到对 NodeJS 的所有引用,确保路径在 Tools->Options... 中的顺序正确,同时搜索修复但没有奏效,这是我能够“隐藏”外部工具的唯一方法从VS(即使在重新启动后)是在两者中都将Node.exe重命名为Node.exe.hide

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Web\External

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Web\External\x86

我确信有更好的方法来解决这个问题,但我找不到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-30
    • 2014-03-27
    • 2011-03-06
    • 1970-01-01
    • 2018-06-21
    • 2014-05-09
    • 2019-02-06
    • 2019-02-14
    相关资源
    最近更新 更多