質問
以下を .aspx ページに追加して、.Net 3.5 対応 Web サーバーに Linq をロードしようとしています。
<%@ Import Namespace="System.Query" %>
ただし、これは失敗し、名前空間が見つからないというメッセージが表示されます。
タイプまたは名前空間名 'Query' は名前空間 'System' に存在しません
私も運が悪かったので試してみました:
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" %>
@意思、
ご協力いただきありがとうございます。私はあなたの答えの 1 つを受け入れました:)
プロジェクトが 2.0 ではなく 3.5 をターゲットに設定されていることを確認してください。
他の人が言ったように、「var」テストはC#3のテストです(つまり、VS2008)、3.5 フレームワークではありません。
プロジェクト フレームワークのターゲット設定を適切に設定していれば、この時点で DLL 参照を手動で追加する必要はありません。
の var hello
これはコンパイラの魔法であり、Linq がなくても動作します。
への参照を追加してみてください System.Core
申し訳ありませんが、明確ではありませんでした。追加するつもりだった System.Core
ページではなく、Web プロジェクトの参照にアクセスします。
の Import
ページ上では基本的にステートメントを使用するだけなので、ページ上の名前空間をスキップできます。
csproj ファイルに System.Core 参照が欠落している可能性があります。csproj ファイル内で次のような行を探します。
<Reference Include="System" />
そして、その下に次のように行を追加します。
<Reference Include="System.Core" />