【问题标题】:Visual Studio 2010 with .NET 4.0 not recognising System.Web.UI.DataVisualization.Charting带有 .NET 4.0 的 Visual Studio 2010 无法识别 System.Web.UI.DataVisualization.Charting
【发布时间】:2011-11-26 10:40:45
【问题描述】:

我正在使用带有 .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个。

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

对此的任何帮助将不胜感激。

谢谢。

【问题讨论】:

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


    【解决方案1】:

    好的,找到问题了。

    我在 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 项目中的代码复制并粘贴到该页面,而设计师实际上将其绑定错误。当我将另一个图表拖到页面上,然后将其删除并正常编译时,我将我从 TFS 签入的代码与新修复进行了比较。因此,我注意到 Designer.cs 实际上是从复制和粘贴中生成错误的,即使它们都是 Visual Studio 2010 解决方案项目(都具有 .NET Framework 4 的目标框架)

    【讨论】:

    • 完美!正是我的问题。谢谢。
    【解决方案2】:

    在您的项目和 .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>
      

      【讨论】:

      • 给其他正在寻找但没有得到结果的人。我想通了,请参阅下面的解决方案。
      【解决方案4】:

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

      【讨论】:

      • 我想通了请参阅下面的解决方案
      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

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

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

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

        【讨论】:

          【解决方案7】:

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

          “很遗憾,这些都不起作用。我最终创建了一个全新的解决方案并添加了所有代码,它运行正常。一定有一个我找不到的小鬼。”

          【讨论】:

            【解决方案8】:

            我最终创建了一个全新的解决方案并添加了所有代码 工作正常。我一定有一个小鬼 找不到。

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

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

            是的,从头开始会修复设计器文件中的 Visual Studio 打嗝,但这并不总是一种选择。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2011-06-02
              • 1970-01-01
              • 2015-02-17
              • 1970-01-01
              • 2015-05-31
              • 1970-01-01
              • 2013-03-02
              相关资源
              最近更新 更多