2012-03-22 55 views
3

我在我的ASP.NET MVC3項目中使用類庫。剃鬚刀的意見:智能感知不與C#3類庫的工作

得到它的工作我已經做了以下內容:

  1. 使用領域
  2. 使用自定義VirtualPathProvider
  3. 使用BuildManager.AddReferencedAssembly每個裝配
  4. 修改了的csproj文件添加Razor的支持/嚮導(<ProjectTypeGuids>{E53F8FEA-EAE0-44A6-8774-FFD645390401};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
  5. web.config從web項目複製到每個類庫項目

一切工作,除了在剃刀視圖intellisense。我得到這樣的警告:

功能的lambda表達式'不能使用,因爲它不是ISO-2 C#語言規範

類庫被設置爲使用.NET 4的一部分。

這裏有一些其他的問題,解決相同的問題

,但我無法找到任何東西,這將迫使編譯器2.0上運行(並且不會使我的觀點在運行時失敗?)

回答

1

設置框架版本ISN」與設置語言版本相同。

我可以通過創建一個lambda表達式樣品並使用複製了同樣的錯誤:

csc /langversion:ISO-2 Test.cs 

在Visual Studio,這是根據項目屬性/生成/高級... /語言版本。它確實讓我很不同尋常,因爲你會有一個固定在ISO-2的Razor項目......

+1

一切都很好,並且在運行項目時工作。當我從VStudio的類庫中打開一個剃鬚刀視圖時,我發現了錯誤。所以這不是一個不正確的編譯設置。 '這確實讓我感到不同尋常,因爲你有一個固定在ISO-2上的Razor項目'我沒有指定這樣的項目。我的問題是,我不知道爲什麼VStudio intellisense在編輯器中打開它們時想要將視圖編譯爲c#2.0。 – jgauffin 2012-03-22 07:13:07

+0

@jgauffin:即使在實際構建時,導致VS中的錯誤的代碼也能正常工作?當你擁有不在類庫中的Razor視圖時,這*不會發生?聽起來像它可能「只是」在視圖編輯器中的錯誤,但一個惱人的:( – 2012-03-22 07:15:12

+0

這是討厭的是的。看看其他問題,似乎有一個解決方案(但他們的答案並沒有幫助我追查問題)。 – jgauffin 2012-03-22 07:17:57