2010-08-04 78 views
1

我有一個測試網站與VS 2008,只是使用代碼背後的文件,如Foo.aspx.cs.因此,網絡服務器即時編譯它們。我遇到的問題是我無法使用任何C#3.0功能。如果我這樣做:Visual Studio 2008開發服務器使用C#2.0編譯器

var x = 1;

公共類Foo { 公衆詮釋X {獲得;設置;}}

美孚X =新的Foo(){X = 5};

然後VS將正常工作(一切都被突出顯示,並Intellisensed),但是當我運行的網站,它只是拋出了編譯器錯誤..

是否有解決這個問題的一種方式,或者你要編譯DLL的目標是3.0運行時?如果是的話那是瘋狂跛..

邁克

+0

假設的Web服務器IIS?哪個版本?哪個OS? – spender 2010-08-04 00:17:11

+0

Windows 7 ..我沒有安裝IIS ..我只是使用Visual Studio 2008,它是一個ASP.NET項目。 – 2010-08-04 00:19:42

回答

0

哦,甜蜜,我明白了!我只好把這個在​​web.config ..

<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> 
     <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" 
        type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
      <providerOption name="CompilerVersion" value="v3.5"/> 
      <providerOption name="OptionInfer" value="true"/> 
      <providerOption name="WarnAsError" value="false"/> 
     </compiler> 
     </compilers> 
    </system.codedom> 

我想這是因爲我的web.config是從一個非常古老的項目借用..

1

只有2.0運行時,有沒有3.0或3.5運行時。他們只是額外的庫,我相信一個不同的C#編譯器。

http://www.novolocus.com/2008/01/11/net-framework-versions-language-versions-and-clr-versions-all-a-bit-fraught/

你確定你是有3.0或3.5安裝在機器?如果它是本地的,那麼你應該有Studio 2008。

因爲您需要C#3編譯器和BCL,但CLR版本仍然是2.0。

因此,請提供運行IIS的機器上安裝的.net版本。

+0

該機器肯定有3.5安裝,因爲我正在編譯與3.5 synax(LINQ和東西)DLL。此錯誤只發生在WebDev.exe編譯頁面後面的代碼..正如我所提到的,IIS沒有安裝在這臺機器上。我想弄清楚如何讓WebDev.exe使用3.0編譯器。 – 2010-08-04 00:23:03

+0

僅供參考,屬性頁「構建」選項卡中的「目標框架」設置爲「.NET Framework 3.5」.. – 2010-08-04 00:25:43

+0

明白了,web.config中有一件事告訴WebDev要使用哪種編譯器。 – 2010-08-04 00:35:09

相關問題