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

时间:2011-11-26 10:40:46

标签: c# .net visual-studio-2010 .net-4.0

我正在使用Visual Studio 2010和.NET 4.0。

我刚开始使用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;

但是,如果我转到我的localhost到其中包含图表的页面,它会呈现正常。

另一个奇怪的事情是,当我编译(CTRL + SHIFT + B)时,我会在第一次编译时得到3个编译错误,然后当我再次执行时,直接执行,我得到16。

即使我得到上面的编译错误,我仍然可以运行应用程序,一切正常,但它真的很烦人,它不会编译所以我一定做错了。

非常感谢任何帮助。

感谢。

8 个答案:

答案 0 :(得分:7)

好的,找出了问题。

我查看了Google ... StackOverflow并找到了此页面,但我知道问题不需要通过重新开始修复。

我有所有引用并修复了web.config,但我仍然遇到错误。

答案是从

更改.Designer代码
protected global::System.Web.UI.WebControls.Chart chartDailyVolume;

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

我已经将另一个visual studio 2010项目中的代码复制并粘贴到页面上,而设计师却错误地将其绑定。当我将另一个Chart拖到页面然后将其删除并编译好时,我将我在TFS中签入的代码与新修复程序进行了比较。因此,我注意到Designer.cs实际上是通过复制和粘贴生成错误的,即使它们都是visual studio 2010解决方案项目(都使用.NET Framework 4的Target Framework)

答案 1 :(得分:5)

单击项目和.NET组件选项卡中的添加引用添加System.Web.DataVisualization 。这应该可以解决你的问题。

答案 2 :(得分:2)

添加对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>

答案 3 :(得分:1)

不幸的是,这一切都没有奏效。我最终创建了一个全新的解决方案,并添加了所有代码,并且它正常工作。某个地方肯定有一个我找不到的地方。

答案 4 :(得分:0)

您是否已将DLL添加为Web项目中的参考?听起来你只是将它包含在bin文件夹或其他东西中。

答案 5 :(得分:0)

在项目参考下,添加System.Web.DataVisualization.dll

  

即使我得到上面的编译错误,我仍然可以运行   应用程序,一切正常,但它真的很烦人   它不会编译所以我一定做错了。

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

答案 6 :(得分:0)

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

“不幸的是,这一切都没有用。我最终创建了一个全新的解决方案,并添加了所有代码,并且它运行正常。在某处我找不到一个gremlin。”

答案 7 :(得分:0)

  

我最终创建了一个全新的解决方案并添加了所有代码   工作正常。我必须在某个地方有一个gremlin   找不到。

你的gremlin最有可能生活在调用控件的页面的设计器文件中。那是我的情况。问题的原因是编辑.aspx文件并在调试器运行时添加控件 - 无法在此模式下编辑设计器文件。必须停止调试器才能添加控件。

修复后,重建解决方案以修复.dll文件。

是的,从头开始会将视觉工作室打嗝修复到设计器文件中,但它并不总是一个选项。