【问题标题】:How to fix random IOException: Sharing violation during import, build or compile?如何修复随机 IOException:在导入、构建或编译期间共享冲突?
【发布时间】:2022-09-28 17:25:16
【问题描述】:

有时,当我尝试导入、构建或只是编译时,Unity 会随机说:

IOException 共享冲突

我做了一个小的研究,但所有的答案都指向那个错误,在执行代码时,不仅仅是构建,我说这是随机的,因为它不时发生,并且每次标记的库文件夹中的 .dll在Error中,是完全不同的。

  • 如果您正在运行进行实时扫描的防病毒软件,它可能会干扰事物并导致此类问题。您可以尝试将项目目录树排除或列入白名单。
  • 我做的第一件事,白名单、Unity、Rider 作为编辑器,以及我的存储库文件夹。
  • ...除了上面的提示之外,请确保您的代码包括您的 Unity 项目不是存储在文件托管服务喜欢一个驱动器或者投递箱.此类应用程序不喜欢在短时间内进行多次编辑。
  • 是的,正如其他人已经暗示的那样:这基本上意味着其他一些应用程序正在与 Unity 同时访问/锁定文件..以扩展可能性列表..如果您使用 Git,请确保将 Library 文件夹排除在外版本控制!和图形用户界面,例如SourceTree 喜欢这样做并在再次扫描时锁定您的文件,确保构建的任何相关内容不在版本控制中
  • 我最近买了一个新的 SSD 来存储,我只是用基本的 windows 选项对其进行了格式化,可能是我配置错误吗? SSD 是我保存项目的地方。

标签: c# unity3d rider jetbrains-rider


【解决方案1】:

正如一些 cmets 所说,一旦我从我的防病毒软件(在本例中为卡巴斯基)禁用“勒索/加密保护”并在 Windows 选项中禁用它,该错误就会停止出现。

【讨论】:

    【解决方案2】:

    这也可能发生,如果统一以任何方式干扰自身,例如通过让多个项目并行运行或崩溃的实例持有一个句柄。其他候选句柄可能是 Sublime 编辑器,其他后台程序获取句柄(例如缩略图生成器等)。

    应该在系统工具中进行调试以查看句柄。在 Windows 下,例如 ProcessExplorer(https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer) 或 Handle (https://learn.microsoft.com/en-us/sysinternals/downloads/handle)。设置断点,然后查看导致共享冲突的原因。

    Prerequisit 是一个干净的软件,这意味着您自己打开的句柄一旦超出范围就应该关闭。一些语言为此提供了构造,例如 C#s 使用。使用它们来防止悬空缓冲区。

    【讨论】:

      猜你喜欢
      • 2010-09-30
      • 2018-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-02
      • 2012-07-09
      • 1970-01-01
      相关资源
      最近更新 更多