Visual Studio 2010与.NET 4.0无法识别System.Web.UI.DataVisualization.Charting。

4

我正在使用带有.NET 4.0的Visual Studio 2010。

我刚开始使用MS图表。当我编译项目时,我会遇到以下错误:

The type or namespace name 'DataVisualization' does not exist in the namespace 'System.Web.UI' (are you missing an assembly reference?)

另外,在我的代码中,这行代码下面有一个波浪线,表示命名空间找不到:

using System.Web.UI.DataVisualization.Charting;

然而,如果我打开本地主机中包含图表的页面,则可以正常显示。
另一个奇怪的问题是,当我编译(CTRL + SHIFT + B)时,第一次编译会出现3个编译错误,然后再次编译时,会出现16个编译错误。
尽管出现了以上编译错误,但我仍然可以运行应用程序,一切都正常工作,但无法编译真的很烦人,所以我肯定做错了什么。
如有任何帮助,将不胜感激。
谢谢。
8个回答

7

好的,问题已经解决。

我在谷歌和StackOverflow上搜索并找到了这个页面,但我知道问题不需要从头开始修复。

我拥有所有的引用并修复了web.config,但仍然出现错误。

答案是修改.Designer代码:

protected global::System.Web.UI.WebControls.Chart chartDailyVolume;

to

protected global::System.Web.UI.DataVisualization.Charting.Chart chartDailyVolume;

我曾经从另一个Visual Studio 2010项目复制并粘贴代码到页面上,但设计师实际上绑定错误了。当我将另一个图表拖到页面上后,再将其删除并编译成功后,我将检入的代码与新的修复进行了比较。然后我注意到,尽管两个解决方案(都使用.NET Framework 4作为目标框架)都是Visual Studio 2010项目,但Designer.cs实际上是从复制和粘贴生成的错误代码。


太好了!正是我的问题。谢谢你。 - dviljoen

5

在您的项目中点击“添加引用”,在“.NET组件”选项卡下添加System.Web.DataVisualization。这应该解决您的问题。


3

添加对System.Web.DataVisualization.dll的引用,并在页面上添加一个图表控件,删除控件以进行web.config设置等。

检查Web.config中是否有这些条目..如果有,它应该可以正常工作。

<pages>
  <controls>
    <add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  </controls>
</pages>

2.

<add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

3.

 <httpHandlers>
      <add path="ChartImg.axd" verb="GET,HEAD" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
    </httpHandlers>

对于那些正在寻找答案但却没有结果的人,我已经找到了解决方法。请看下面的解决方案。 - Tom Stickel

1

不幸的是,这些方法都没有奏效。最终我创建了一个全新的解决方案,并添加了所有的代码,它可以正常工作。可能有一些我找不到的小问题。


我已经想出来了,请看下面的解决方案。 - Tom Stickel

0
我最终创建了一个全新的解决方案,并添加了所有代码,它正常工作。一定有一个小精灵藏在某个地方,我找不到它。
你的小精灵很可能存在于调用控件的页面的设计文件中。这就是我的情况。问题的原因是在调试器运行时编辑 .aspx 文件并添加控件 - 在此模式下无法编辑设计文件。必须停止调试器才能添加控件。
修复后,重新构建解决方案以修复 .dll 文件。
是的,从头开始会修复设计文件中的 Visual Studio 小故障,但这并不总是可行的选项。

0
你是否在你的 Web 项目中将 DLL 添加为引用?听起来像是你只是将它包含在 bin 文件夹中或其他地方。

0

在项目引用中,添加System.Web.DataVisualization.dll

尽管我收到了上述编译错误,但我仍然可以运行应用程序并且一切都正常工作,但它真的很烦人,因为它无法编译,所以我一定做错了什么。

如果运行实例仍然正常工作,则您的实际代码不是正在运行的代码,因为它未经过编译。如果dll文件在exe文件的bin文件夹中,则该运行实例可能正常工作。


0

这个解决方案(创建一个新项目)对我很有用。与许多其他遇到此问题的人不同,我没有使用设计师,也没有使用web.config(桌面应用程序)。重新创建一个新项目,然后添加引用,我就能够引用组件和方法了。

“不幸的是,这些都没有起作用。最终我创建了一个全新的解决方案,并添加了所有的代码,它正常工作了。一定有一个我找不到的小精灵。”


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接