【问题标题】:Windows Forms app, exception on start-up: Could not load System.XmlWindows 窗体应用程序,启动时出现异常:无法加载 System.Xml
【发布时间】:2009-11-03 08:25:06
【问题描述】:

更新:我尝试使用 fuslogvw.exe 来获取日志。但我到底在寻找什么?可悲的是,日志是丹麦语,这非常烦人(显然有人认为将错误日志消息中的所有文字翻译成丹麦语是个好主意,但它基本上使谷歌无用:我必须猜测原始英文文本才能得到好命中,grrrr)。我认为翻译应该是这样的: “LOG:开始绑定原始图像 System.Windows.Forms.resources,版本=2.0.0.0,文化=da-DK,PublicKeyToken=b77a5c561934e089。 警告:未找到匹配的原始图像”。

我对这些日志很陌生,所以建议仍然很受欢迎。

我有一个 Windows 窗体应用程序,它使用 Properties.Settings... 存储设置... 我最近下载并安装了另一个 .Net 应用程序。现在突然之间,我自己的 Windows 窗体应用程序在启动时立即抛出异常(我尝试加载设置)。错误提示类似于“文件或程序集 System.Xml, Version=2.0.0.0, PublicKeyToken= b77a5c561934e089 或其依赖项之一无法加载。该模块应包含程序集清单”。

我不知道在哪里查找此错误的原因,因为 Windows\assembly 文件夹包含具有正确版本和公共密钥的 System.Xml。

欢迎提出建议,尤其是参考我应该阅读的 .Net 文档,因为我觉得这在我的 .Net 知识方面存在很大差距。

谢谢!

【问题讨论】:

    标签: c# .net system.xml


    【解决方案1】:

    这部分是猜测,但值得一试。

    查看您的 app.config 文件。查找引用 System.XML 的任何配置。如果您发现任何问题,请尝试从绑定中删除版本号。我在企业库的多个版本中遇到了类似的问题。

    如果这没有帮助,您可以使用程序集绑定日志查看器 (fuslogvw.exe) 获取有关绑定失败的更多信息。您必须启动它并启用所有绑定的日志记录(或者如果您愿意,也可以只记录失败),然后确保您的日志已清除,运行您的应用程序,点击刷新并查看 System.XML 失败的绑定日志。这将为您提供有关运行时在何处查找程序集以及绑定失败原因的信息。

    【讨论】:

    • 下面是来自应用程序 .config 文件的 sn-p。如果我理解正确,我应该删除 Version=2.0.0.0 部分吗?
    • 没有。保留所有这些,没有一个是指 System.XML 程序集。我建议你尝试使用 fuslogvw。
    【解决方案2】:

    确保您的机器上安装了 .NET 2.0(如果只安装了 .NET 3.0 是不够的)。您能否提供有关您的原始应用程序编译的框架版本的更多信息?让我知道它是否有帮助

    【讨论】:

    • 我安装了 .NET 2.0、3.0、3.5 SP1。我怎样才能检查这些的“条件”?另外,如何检查我的应用程序是针对哪个版本编译的?该信息是否“嵌入”在二进制 .exe 中?
    • 要检查您的计算机上是否安装了 .NET 2.0,请从命令行运行以下命令: dir %WINDIR%\Microsoft.NET\Framework\v2.0.50727 检查您的计算机是什么 .NET 框架编译应用程序,检查项目 -> 属性 -> 应用程序 -> 目标框架 要检查现有的可执行文件或程序集,请在反射器中打开它并检查引用的 mscorlib.dll 的版本。这是框架的版本。
    猜你喜欢
    • 2019-04-09
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多