首页 > 解决方案 > 错误 framework-extra-bundle 注释“无法解析文件 [...] XML 文件无效。”

问题描述

几个月以来,我的 Symfony 项目中反复出现错误。每次编辑项目根目录的文件时(即使在 a.txt 文件中添加空格也会重现该错误),我会收到此错误。

无法解析文件“[RootPath]\vendor\sensio\framework-extra-bundle\src\DependencyInjection/../Resources/config\annotations.xml”:XML 文件“[RootPath]\vendor\sensio\framework-extra -bundle\src\DependencyInjection/../Resources/config\annotations.xml" 无效。

XML 错误

使用命令行删除错误symfony console cache:clear

我认为这个错误与 PhpStorm 相关,因为我在用它编辑根文件时得到它,但是当我用 VSCode 或 Notepad++ 编辑根文件时,该错误是不可重现的。

我正在使用 PhpStorm 版本 2021.2 并尝试使用 2021.1.4 和 2020.3.3。我试图禁用所有 PhpStorm 插件。

该项目是使用 Symfony 5.3 制作的,但使用 Symfony 5.1 的旧项目会重现该错误

有人知道如何解决这个问题或知道我可以尝试解决什么吗?

编辑:
这是 annotations.xml 的内容:

<?xml version="1.0" ?>

<container xmlns="http://symfony.com/schema/dic/services"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">

    <services>
        <service id="sensio_framework_extra.controller.listener" class="Sensio\Bundle\FrameworkExtraBundle\EventListener\ControllerListener">
            <tag name="kernel.event_subscriber" />
            <argument type="service" id="annotation_reader" />
        </service>
    </services>
</container>

我发现在错误之前、期间和之后的 annotations.xml 文件中没有任何修改。

编辑2:

通过更多测试,即使使用 VS Code 或 Windows 资源管理器等其他工具,每次在根目录删除或创建文件时都会重现此错误。

该错误仅在使用 PhpStorm 进行修改时产生,所以我猜它会在编辑文件时创建和删除临时文件或类似的东西。

标签: phpxmlsymfonyiis

解决方案


该错误似乎来自 IIS、Symfony 和 PHP 版本 8.0.8 和 8.0.10(其他版本可能会导致相同的问题)。

将 IIS 服务器的 PHP 版本更改为 8.0.0 可防止错误发生。


推荐阅读