命名空间'System.ComponentModel'中不存在类型或命名空间名称'DataAnnotations'

时间:2012-02-06 17:52:40

标签: asp.net c#-4.0 dll iis-7.5

在任何人将此作为重复关闭之前 - 请注意它不是linq或其他数据源问题,我查看了其他stackoverflow帖子,但没有一个是相同的。

这是我的问题:

Error Screen Shot

它非常简单的应用程序ASP.net与C#代码背后没有花哨的东西简单明了,你可以从下面的代码看到:

default.aspx代码

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%=returVar%>

Default.apsx.cs

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    public string returVar;
    protected void Page_Load(object sender, EventArgs e)
    {
        string n = String.Format("{0}", Request.Form["test"]);
        //below we will place the code for ODP.net once the DB connectivity is resolved
        if (n.Length == 16)
        {
            returVar = "Found";
        }
        else
        {
            returVar = "Not found";
        }
    }//Page_Load
}

最后是web.config

<?xml version="1.0"?>
<configuration>
    <system.web>
        <compilation debug="false"/>
    </system.web>
</configuration>

我的开发机器是:赢取32 xp visual studio 2010,运行的服务器是Win 64bit 2008 R2和IIS7.5。

所以当我在桌面上运行此代码时,为什么会出现此错误,它就像一个带有http的通过firefox的魅力,如下所示:

http://localhost:3117/Default.aspx?test=0998989765432345

完全相同的代码失败并附带屏幕截图,有人可以告诉我为什么请提出解决方案。我尝试将解决方案资源管理器中的所有DLL包括在内,即解决方案资源管理器&gt;参考文献&gt; system.core,system.data等...&gt; all set for copy local = true。

仍然没有运气。

请注意我无法在服务器上安装任何额外的组件,我必须部署的内容必须是应用程序的一部分。

2 个答案:

答案 0 :(得分:4)

最简单的解决方案,如果其他人遇到这种情况,这就是我如何实现结果

在加载

后打开Visual Studio 2010

open explorer - &gt;转到&gt; C:\ Program Files \ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0

将所需的System.ComponentModel.DataAnnotations.dll复制到您的项目中&#34;参考文献&#34;文件夹选择该引用并在属性集&#34; copy local&#34;为true,一旦你发布它将在你的bin文件夹中,并且不会影响任何服务器上的x32或x64。

希望它可以帮助其他人。

答案 1 :(得分:0)

您是否只安装了.NET 4.0的客户端配置文件版本?您可能需要完整版本。