2

我需要在 web.config 中添加对“System.XML.dll”程序集的引用(为了尝试解决问题,这里提到:扩展方法的问题:IXmlLineInfo)。

我试图将以下行添加到“程序集”部分:

<add assembly="System.Xml, Version=2.0.5.0, Culture=neutral,
     PublicKeyToken=7cec85d7bea7798e"/>

这导致了一个错误:

说明:处理服务此请求所需的配置文件期间发生错误。请查看下面的具体错误详细信息并适当地修改您的配置文件。

解析器错误消息:无法加载文件或程序集“System.Xml,版本=2.0.5.0,Culture=neutral,PublicKeyToken=7cec85d7bea7798e”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

老实说,我不确定是否正确指定了 version/Culture/PublicKeyToken。

我有几个不同版本的 System.XML.dll:

  • C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v3.5\Profile\Client\System.XML.dll
  • C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\Profile\Client\System.XML.dll
  • C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.XML.dll
  • C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v3.0\System.Xml.dll
  • C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\System.Xml.dll

此外,我在框架、框架 x64 等中的 GAC 中有一些程序集......

问题1:

我需要哪个组件?

问题2:(已过时)

如何确定确切的程序集版本和 publicKeyToken?

PS有趣的事情,当我发布问题时,我发现已经有一个'publickkeytoken'标签并且它包含问题2的答案:)

非常感谢!

4

2 回答 2

3

尝试“gacutil /l”,并确保根据目标 .NET 版本(例如,3.5、4.0 等)将您真正想要引用的 web.config 放入您的 web.config。(在代码方面,请确保您可以通过 Assembly.Load() 加载程序集。)

于 2011-01-13T16:41:08.507 回答
1

如果您使用的是 Visual Studio,那么您可以通过右键单击您的项目-> 添加引用-> 在 .NET 选项卡下找到该程序集。

如何通过 VS 添加程序集引用

根据项目的类型,即 WebSite 或 WebApplication VS 将向 web.config 添加一个条目或将 dll 添加到您的 bin 文件夹。

现在您需要哪一个(2.0/3.5/4.0)取决于您的应用程序。

于 2011-01-13T18:07:30.693 回答