首页 > 解决方案 > 收到错误消息“类型“XmlNode”在未引用的程序集中定义。”,但引用了适当的程序集

问题描述

我一直在寻找解决方案很长时间没有运气。我正在使用此代码从 .odt 文件中提取文本:

public String ReadOdt(String path)
        {
            var sb = new StringBuilder();
            using (var doc = new TextDocument())
            {
                doc.Load(path);

                XElement stylesPart = XElement.Parse(doc.DocumentStyles.Styles.OuterXml);
                string stylesText = string.Join("\r\n", stylesPart.Descendants().Where(x => x.Name.LocalName == "header" || x.Name.LocalName == "footer").Select(y => y.Value));

                var mainPart = doc.Content.Cast<IContent>();
                var mainText = String.Join("\r\n", mainPart.Select(x => x.Node.InnerText));

                sb.Append(stylesText + "\r\n");
                sb.Append(mainText);
            }
            return sb.ToString();
        }

但是,Visual Studio 告诉我:

错误 CS0012:在未引用的程序集中定义了类型“XmlNode”。您必须添加对程序集“System.Xml,Version=1.0.5000.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”的引用。(CS0012) (ScriptTablerV0)

'XmlDocument' 类型也是如此。

作为一种解决方案,它建议导入 System.Xml 引用,但这不会改变任何东西并且错误仍然存​​在。

有什么我应该看或尝试的吗?任何帮助将不胜感激。

编辑:我尝试使用 System.Xml 程序集中的其他方法/类,并且它们没有问题,但 VS 仍然无法识别样式和节点。

标签: c#visual-studioreferencesystem.xml

解决方案


推荐阅读