2016-08-18 66 views
0

我正在Visual Studio 2015 Update 3中開發一個.net核心/ asp.net核心應用程序,該應用程序在Azure的net46框架上運行。我在我的解決方案中有幾個項目文件,其中一些是用dotnet核心編寫的,其中一些是從另一個解決方案(dotnet 4.6)導入的。引用非dotnet核心項目時Intellisense不起作用

我的解決方案構建並運行良好,但Intellisense(也運行ReSharper)將紅色波浪線放在引用非核心庫的代碼下面。

我project.json看起來是這樣的:

{ 
    "version": "1.0.0-*", 
    "buildOptions": { 
    "emitEntryPoint": true, 
    "preserveCompilationContext": true 
    }, 
    "dependencies": { 

    "Microsoft.AspNetCore.Diagnostics": "1.0.0-rc2-final", 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final", 
    "Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final", 
    "Microsoft.AspNetCore.StaticFiles": "1.0.0-rc2-final", 

    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final", 
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final", 
    "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0-rc2-final", 
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0-rc2-final", 
    "Microsoft.Extensions.Logging": "1.0.0-rc2-final", 
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final", 
    "Microsoft.Extensions.Logging.Debug": "1.0.0-rc2-final", 

    "Autofac": "4.0.0-rc2-240", 
    "Autofac.Extensions.DependencyInjection": "4.0.0-rc2-240", 

    "AutoMapper": "4.2.1.0", 

    "Microsoft.ApplicationInsights.AspNetCore": "1.0.0-rc2-final", 
    "Microsoft.ApplicationInsights.TraceListener": "2.0.0", 

    "XXX.SystemCore": "1.0.0-*", 
    "XXX.Services": "1.0.0-*" 
    }, 
    "tools": { 
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": { 
     "version": "1.0.0-preview2-final" 
    } 
    }, 
    "frameworks": { 
    "net46": { 
     "dependencies": { 
     "XXX.SystemCore": { 
      "target": "project" 
     } 
     } 
    } 
    }, 
    "publishOptions": { 
    "include": [ 
     "wwwroot", 
     "appsettings.json", 
     "web.config" 
    ] 
    }, 
    "runtimeOptions": { 
    "gcServer": true 
    }, 
    "scripts": { 
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] 
    } 
} 

以下項目的非核心的:

"XXX.SystemCore": "1.0.0-*", 
"XXX.Services": "1.0.0-*" 

它們也包括在其他的解決方案,所以我不能只是轉換他們要核心。

的包裝,project.json看起來是這樣的:

{ 
    "version": "1.0.0-*", 
    "frameworks": { 
    "net46": { 
     "bin": { 
     "assembly": "../../../XXX.SystemCore/obj/{configuration}/XXX.SystemCore.dll", 
     "pdb": "../../../XXX.SystemCore/obj/{configuration}/XXX.SystemCore.pdb" 
     } 
    } 
    } 
} 

請,我怎麼可以刪除所有從引用的項目紅色波浪線? :-)

+0

是否有有紅線的任何錯誤信息?你有沒有嘗試引用它們只有一次(全球對守衛)? – Thomas

+0

我在github上發現了一個目前尚未解決的問題,它討論了這個問題:https://github.com/aspnet/Tooling/issues/565 ...所以我想這是一個錯誤。 –

回答

1

在將Web項目從ASP.NET 5 RC1升級到ASP.NET Core 1.0.0後,我在Visual Studio 2015中遇到了完全相同的問題。

使用後,Visual Studio以某種方式包含了經典(非核心)類庫(.csproj)以及wrap文件夾中的包裝器項目(.xproj)。 wrap文件夾由Visual Studio在使用ASP.NET 5 RC1時創建。

步驟,在我的情況下幫助:

  1. 關閉的解決方案,並退出Visual Studio的
  2. 從包文件夾中的文件系統中刪除重複的xproj項目(或者如果可能的話取出完整包文件夾) 。
  3. 在Visual Studio中打開解決方案並刪除孤立的(wrap-)項目。
  4. 重建。在某些情況下,我必須刪除並重新添加對經典(非核心)庫的引用。

結論:

是不需要的包文件夾了(> RC2)來引用經典的類庫,但不知何故 - 如果仍然存在 - 似乎與Visual Studio智能感知干擾

+0

謝謝,這在我在Visual Studio中編譯和運行時似乎可行,但CLI工具(我需要用於CI構建和部署)似乎不再有效。可能相關的錯誤:https://github.com/dotnet/cli/issues/3199 CLI工具是否適合您?你的project.json是怎麼樣的? –

+0

我無法使用CLI工具(dotnet恢復,構建,發佈)。對於project.json中引用的每個經典項目(.csproj),dotnet。exe是這樣給出的錯誤消息:'無法解析'XYZ.Domain.Interfaces(> = 1.0.0)'爲'DNX,版本= v4.5.1'。'我的project.json引用經典項目看起來像這:'「XYZ.Domain.Interfaces」:{「target」:「project」}' –

相關問題