System.Web.UI.DataVisualization.Charting.Grid 在 GAC 中存在两次

发布于 2024-10-20 05:19:01 字数 418 浏览 9 评论 0原文

我已将 Web 应用程序从 .NET 3.5 升级到 .NET 4,但在浏览到使用图表控件的页面时出现此异常:

类型“System.Web.UI.DataVisualization.Charting.Grid”存在于“c:\Windows\Microsoft.NET\ assembly\GAC_MSIL\System.Web.DataVisualization\v4.0_4.0.0.0__..”中.\System.Web.DataVisualization.dll' 和 'c:\Windows\ assembly\GAC_MSIL\System.Web.DataVisualization\3.5.0.0__...\System.Web.DataVisualization.dll'

如何使用 4.0 使其正常工作控制?谢谢。

I've upgraded a web application from .NET 3.5 to .NET 4, and I get this exception when browsing to a page that uses the Chart control:

The type 'System.Web.UI.DataVisualization.Charting.Grid' exists in both 'c:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Web.DataVisualization\v4.0_4.0.0.0__...\System.Web.DataVisualization.dll' and 'c:\Windows\assembly\GAC_MSIL\System.Web.DataVisualization\3.5.0.0__...\System.Web.DataVisualization.dll'

How can I get this working, using the 4.0 control? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

裂开嘴轻声笑有多痛 2024-10-27 05:19:01

1) 将 web.config 中指向 3.5 图表控件的所有引用升级到引用版本 4:

tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" ... Version=4.0.0.0 ...

add path="ChartImg.axd" verb="GET,HEAD,POST" ... Version=4.0.0.0 ...

add name="ChartImageHandler" ... Version=4.0.0.0 ...

2) 从 Bin 目录中删除所有图表库,因为它们已包含在 .NET 4 框架中

1) Upgrade all references that point to the 3.5 Chart control in web.config to reference version 4:

tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" ... Version=4.0.0.0 ...

add path="ChartImg.axd" verb="GET,HEAD,POST" ... Version=4.0.0.0 ...

add name="ChartImageHandler" ... Version=4.0.0.0 ...

2) Remove all charting libs from your Bin directory because they are already included in the .NET 4 framework

留蓝 2024-10-27 05:19:01

您可以使用程序集重定向

例如(确保 publicKeyToken 正确,我的计算机上没有该程序集):

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <dependentAssembly>
            <assemblyIdentity name="System.Web.DataVisualization"
                              publicKeyToken="32ab4ba45e0a69a1"
                              culture="neutral" />
            <bindingRedirect oldVersion="3.5.0.0"
                             newVersion="4.0.0.0"/>
         </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

You can use assembly redirection.

For example (make sure the publicKeyToken is correct, I don't have the assembly on this computer):

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <dependentAssembly>
            <assemblyIdentity name="System.Web.DataVisualization"
                              publicKeyToken="32ab4ba45e0a69a1"
                              culture="neutral" />
            <bindingRedirect oldVersion="3.5.0.0"
                             newVersion="4.0.0.0"/>
         </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>
晒暮凉 2024-10-27 05:19:01

删除其中之一,一个在 GAC 中,一个在您的项目中(我猜)。

也许你的项目中有一个你使用后留下的参考。 NET 3.5?或者其他使用它的 DLL:=)

Remove one of them , one is in the GAC and one is in your project i guees.

Maybe you have a reference in your project that is left after you used. NET 3.5? Or other DLLs that use it: =)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文