题
我正在尝试通过将以下内容添加到我的 .aspx 页面来在启用 .Net 3.5 的 Web 服务器上加载 Linq:
<%@ Import Namespace="System.Query" %>
但是,这失败了并告诉我它找不到名称空间。
命名空间“System”中不存在类型或命名空间名称“Query”
我也尝试过但没有运气:
System.Data.Linq
System.Linq
System.Xml.Linq
我相信 .Net 3.5 正在发挥作用,因为 var hello = "Hello World"
似乎有效。
有人可以帮忙吗?
附:我只是想澄清一下,我不使用 Visual Studio,我只是有一个 文本编辑器 并将我的代码直接写入 .aspx 文件中。
解决方案
我在 IIS 中选择了版本 2,并且我
嗯,这肯定是你的问题吧?选择 3.5。
事实上,真正的信息是这样的:
http://www.hanselman.com/blog/HowToSetAnIISApplicationOrAppPoolToUseASPNET35RatherThan20.aspx
其他提示
web.config 文件的部分是什么样的?
下面是使用 Visual Studio 2008 创建的全新 ASP.NET 3.5 项目的外观:
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
我找到了答案:)我需要将以下内容添加到我的 web.config 中:
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
然后我可以将以下内容添加到我的代码中:
<%@ Import Namespace="System.Linq" %>
@将要,
感谢您的帮助。我已接受您的答案之一:)
确保您的项目设置为目标 3.5,而不是 2.0。
正如其他人所说,您的 'var' 测试是 C#3 的测试(即VS2008),不是3.5框架。
如果正确设置了项目框架目标设置,则此时不需要手动添加 dll 引用。
这 var hello
东西是编译器的魔法,无需 Linq 也能工作。
尝试添加对的引用 System.Core
抱歉,我没说清楚。我的意思是添加 System.Core
到网络项目的引用,而不是页面。
这 Import
页面上基本上只是 using 语句,允许您跳过页面上的名称空间。
csproj 文件可能缺少 System.Core 引用。在 csproj 文件中查找如下行:
<Reference Include="System" />
并在其下面添加一行,如下所示:
<Reference Include="System.Core" />