2017-01-23 19 views
20

當試圖在Visual Studio代碼上使用C#DotNet核心MVC應用程序時,我有很多麻煩讓視覺工作室代碼工作。它很難找到與C#相關的任何東西,甚至標記爲「使用系統」;作爲無效,說它找不到它。錯誤VS代碼dotnet核心C#:「無法找到類型或名稱空間名稱'系統',但構建成功

但是,當我運行dotnet構建,它成功沒有警告或錯誤,項目運行。

我project.json:

{ 
    "version": "1.0.0-*", 
    "buildOptions": { 
    "debugType": "portable", 
    "emitEntryPoint": true 
    }, 
    "dependencies": { 
    "Microsoft.NETCore.App": { 
     "version": "1.1.0", 
     "type": "platform" 
    }, 
    "Microsoft.EntityFrameworkCore.Sqlite": "1.1.0", 
    "Microsoft.EntityFrameworkCore.Design": { 
     "version": "1.1.0", 
     "type": "build" 
    }, 
    "Microsoft.AspNetCore.Mvc": "1.1.0", 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.1.0", 
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0", 
    "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0", 
    "Microsoft.Extensions.Configuration.Json": "1.1.0", 
    "Microsoft.Extensions.Logging": "1.1.0", 
    "Microsoft.Extensions.Logging.Console": "1.1.0", 
    "Microsoft.Extensions.Logging.Debug": "1.1.0", 
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0", 
    "Microsoft.AspNetCore.StaticFiles": "1.1.0" 
    }, 

    "frameworks": { 
    "netcoreapp1.1": { 
     "dependencies": { 
     "Microsoft.NETCore.App": { 
      "type": "platform", 
      "version": "1.1.0" 
     } 
     }, 
     "imports": "dnxcore50" 
    } 
    } 
} 

任何想法?我真的用這個拉我的頭髮。

回答

47

有時C#for Visual Studio代碼(由OmniSharp提供支持)會變得困惑。

嘗試重新啓動OmniSharp。這裏有兩種方法:

  1. 關閉並重新打開Visual Studio代碼,或
  2. 打開命令托盤和類型Restart Omnisharp

如果我們從命令行而不是從Visual Studio代碼中恢復依賴關係,OmniSharp往往會變得困惑。

+3

我確實嘗試重新啓動omnisharp,無濟於事。我甚至嘗試重新安裝整個.net核心SDK和Runtime。我覺得這個項目在某個地方有點怪,但我看不到它。我希望我可以調試omnisharp告訴我爲什麼它找不到系統... – MStudley

1

好吧,我已經找出了導致問題的原因。我爲project.json文件的框架部分引用了錯誤的導入。

此:

"frameworks": { 
    "netcoreapp1.1": { 
     "dependencies": { 
     "Microsoft.NETCore.App": { 
      "type": "platform", 
      "version": "1.1.0" 
     } 
     }, 
     "imports": "dnxcore50" 
    } 
    } 

應該是這樣的:

"frameworks": { 
    "netcoreapp1.1": { 
     "imports": [ 
     "dotnet5.6", 
     "portable-net45+win8" 
     ] 
    } 
    } 

我在Windows 8機器,出於某種原因, 「dnxcore50」 是無效的,但「dotnet5.6 「和」portable-net45 + win8「是。我將繼續尋找爲什麼這個問題,但我現在發佈這個答案,以防別人正在處理這個問題。

相關問題