2009-04-07 12 views
1

System.Coreアセンブリへの参照を追加しました。 web.configは今持っている:WebプロジェクトにLinqサポートを追加しています。コンパイラのチョーク

<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 

IISはインテリセンスが拡張メソッドを示していますが、コンパイラは、LINQの構文を理解していないASP.NETのバージョン2.0.50727

を使用するように設定されています。私はソリューション内の他のクラスライブラリでLinqを使うことができます。

これを修正するにはどうすればよいですか?

** EDIT: 私は<system.codedom>ノードを持っていないのweb.config

<system.web> 
<compilation 
    <assemblies> 
    <!-- references here //--> 
    </assemblies> 
     <compilers> 
     <compiler language="c#" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" extension=".cs" compilerOptions="/d:DEBUG;TRACE" /> 
     </compilers> 
    </compilation> 
</system.web> 

で、すでに以下のものを持っています。 これは1.xから2.xに3.5に移行されたプロジェクトです。から<compilers>を削除して<system.codedom>に追加しますか?

私は、これは大規模なエンタープライズプロジェクトです(と私はあまりにも多くのweb.configファイルを台無しにしたいいけない)としてこの作業を取得するために必要な最小限の変更をしたいので、予めご了承ください **

答えて

4

だけアセンブリを追加すると参照が作成されますが、使用するコンパイラのバージョンを指定する必要があります。

あなたはweb.configファイルで<system.codedom>要素を更新する必要があります。

<system.codedom> 
    <compilers> 
    <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" 
     type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, 
     Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     <providerOption name="CompilerVersion" value="v3.5" /> 
     <providerOption name="WarnAsError" value="false" /> 
    </compiler> 
    </compilers> 
</system.codedom> 

あなたは必ず<compiler>要素であることを確認しなければならない重要な部分は、この子要素である:

<providerOption name="CompilerVersion" value="v3.5" /> 

これは、C#コンパイラのv3.5を使用していることを確認します。

<system.codedom>要素は、ドキュメントごとに、<configuration>要素の子です:Webアプリケーションプロジェクトではなく、Webサイトを使用し

http://msdn.microsoft.com/en-us/library/k6bttwes.aspx

+0

ありがとう、試してみます。なぜ、コンパイラがソリューション内の他のプロジェクトのクラスライブラリのlinqクエリについて文句を言っていないのか不思議です。 – DotnetDude

+0

@DotnetDude:それらはクラスライブラリであり、プロジェクトファイルはC#コンパイラを使用するように設定されています。 ASP.NETでは、あなたのdev/buildマシンのものではなく、サーバ上でコンパイラを使用する必要があります。 SxSのおかげで、使用するコンパイラが異なります。 – casperOne

+0

あなたは私の編集を見ることができますか?ありがとう – DotnetDude

0

はそれとして(参考のために)この問題を与えることはありませんコードをDLLにビルドします。

関連する問題