2016-08-18 7 views
0

私はAzureのnet46フレームワーク上で動作するVisual Studio 2015 Update 3で.net core/asp.netコアアプリケーションを開発しています。私のソリューションにはいくつかのプロジェクトファイルがありますが、そのうちのいくつかはdotnetコアで書かれており、そのうちのいくつかは別のソリューション(dotnet 4.6)からインポートされています。Intellisenseは非ドットネットコアプロジェクトを参照するときには機能しません

私のソリューションはうまく構築され、うまく動作しますが、Intellisense(ReSharperも稼動しています)では、非コアライブラリを参照するコードの下に赤い波線が表示されます。私はちょうど変換することはできませんので、彼らはまた、他のソリューションに含まれている

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

:次のプロジェクトは、非コアなものです

{ 
    "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%" ] 
    } 
} 

私project.jsonは、このようになりますそれらをコアにする。

ラッパー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

この問題を解決するasp.netコアツールチームの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には、ラップフォルダからラッパープロジェクト(.xproj)の横にクラシック(非コア)クラスライブラリ(.csproj)とラッププロジェクトの両方が含まれていました。 wrapフォルダは、ASP.NET 5 RC1で作業している間はVisual Studioによって作成されていました。私の場合には役立っ

手順:ファイルシステムにラップフォルダから重複xproj・プロジェクトを削除する(または、可能な場合は、完全なラップフォルダを削除)

  1. ソリューションを閉じると終了Visual Studioの
  2. Visual Studioで開いているソリューションで、孤立した(ラップ)プロジェクトが削除されます。
  3. リビルド。場合によっては、古典的な(非コア)ライブラリへの参照を削除して再追加する必要がありました。

結論:

ラップフォルダが何らかの形で古典的なクラスライブラリを参照するが、これに(> RC2)もう必要ありません - まだ存在しない場合は - Visual Studioのインテリセンス

+0

これはコンパイルしてVisual Studioでも実行できますが、CLIツール(CIビルドとデプロイメントに必要)はもう動作しないようです。おそらく関連するバグ:https://github.com/dotnet/cli/issues/3199 CLIツールは機能しますか?あなたのproject.jsonはどのように見えますか? –

+0

私はCLIツールを使用することはできません(dotnet restore、build、publish)。 project.jsonで参照されるすべての古典的なプロジェクト(.csproj)に対して、dotnetexeは次のようなエラーメッセージを表示しています: 'DNZ、Version = v4.5.1'のための 'XYZ.Domain.Interfaces(> = 1.0.0) 'を解決できません。'私のproject.jsonの古典的なプロジェクトへの参照は以下のようになりますこれは: "" XYZ.Domain.Interfaces ":{" target ":" project "}' –

関連する問題