2016-07-25 8 views
13

私はnet461参照を使用して実行しているASP.NET Core 1.0の完全なアプリケーションを持っています。今私は別のフレームワーク - netcoreapp1.0を追加しようとしています。このために、私はこのように私のproject.jsonを更新しました:project.jsonを変更した後エラーを解決しました "Microsoft.NETCore.App 1.0.0はフレームワーク.NETFramework、Version = v4.6.1をサポートしていません"

{ 
    "userSecretsId":"", 
    "version":"2.4.0-*", 
    "buildOptions":{ 
     "emitEntryPoint":true, 
     "preserveCompilationContext":true 
    }, 
    "dependencies":{ 
     "Microsoft.ApplicationInsights.AspNetCore":"1.0.0", 
     "Microsoft.AspNetCore.Authentication.Cookies":"1.0.0", 
     "Microsoft.AspNetCore.Diagnostics":"1.0.0", 
     "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore":"1.0.0", 
     "Microsoft.AspNetCore.Identity":"1.0.0", 
     "Microsoft.AspNetCore.Identity.EntityFrameworkCore":"1.0.0", 
     "Microsoft.AspNetCore.Mvc":"1.0.0", 
     "Microsoft.AspNetCore.Mvc.TagHelpers":"1.0.0", 
     "Microsoft.AspNetCore.Server.IISIntegration":"1.0.0", 
     "Microsoft.AspNetCore.Server.Kestrel":"1.0.0", 
     "Microsoft.AspNetCore.StaticFiles":"1.0.0", 
     "Microsoft.EntityFrameworkCore":"1.0.0", 
     "Microsoft.EntityFrameworkCore.SqlServer":"1.0.0", 
     "Microsoft.Extensions.Configuration.CommandLine":"1.0.0", 
     "Microsoft.Extensions.Configuration.FileExtensions":"1.0.0", 
     "Microsoft.Extensions.Configuration.Json":"1.0.0", 
     "Microsoft.Extensions.Configuration.UserSecrets":"1.0.0", 
     "Microsoft.Extensions.Logging":"1.0.0", 
     "Microsoft.Extensions.Logging.Console":"1.0.0", 
     "Microsoft.Extensions.Logging.Debug":"1.0.0", 
     "Microsoft.VisualStudio.Web.BrowserLink.Loader":"14.0.0", 
     "Microsoft.VisualStudio.Web.CodeGenerators.Mvc":"1.0.0-preview2-final" 
    }, 
    "tools":{ 
     "BundlerMinifier.Core":"2.0.238", 
     "Microsoft.AspNetCore.Razor.Tools":"1.0.0-preview2-final", 
     "Microsoft.AspNetCore.Server.IISIntegration.Tools":"1.0.0-preview2-final", 
     "Microsoft.Extensions.SecretManager.Tools":"1.0.0-preview2-final" 
    }, 
    "commands":{ 
     "ef":"EntityFramework.Commands", 
     "web":"Microsoft.AspNetCore.Server.Kestrel" 
    }, 
    "frameworks":{ 
     "net461":{ 

     }, 
     "netcoreapp1.0":{ 
     "imports":[ 
      "dotnet5.6", 
      "portable-net45+win8" 
     ] 
     } 
    }, 
    "runtimes":{ 
     "win10-x64":{ 

     }, 
     "win81-x64":{ 

     }, 
     "win8-x64":{ 

     }, 
     "win7-x64":{ 

     } 
    }, 
    "publishOptions":{ 
     "exclude":[ 
     "**.user", 
     "**.vspscc", 
     "wwwroot", 
     "node_modules" 
     ] 
    }, 
    "scripts":{ 
     "prepublish":[ 
     "npm install", 
     "bower install", 
     "gulp clean", 
     "gulp min" 
     ] 
    } 
} 

、私はこのエラーを得た:

Failed to make the following project runnable: MVC6_Full_Version (.NETCoreApp,Version=v1.0) reason: Expected coreclr library not found in package graph. Please try running dotnet restore again.

これを解決するために、私はdotnet restoreコマンドが、運が走りました。

その後、私はこのブロックを追加しました: - .NET

Code: NU1002 Description: The dependency Microsoft.NETCore.App 1.0.0 does not support framework .NETFramework,Version=v4.6.1.

は基本的に、私は私のアプリケーションでは、両方の参照を追加したい:このブロックを追加した後

"Microsoft.NETCore.App": { 
    "version": "1.0.0", 
    "type": "platform" 
}, 

を、私は別のエラーが発生しましたフレームワーク4.6.1とASP.NETコア1.0。

このエラーを解決するにはどうすればよいですか?

+0

あなたは私の答えを見ることができます、うまくいけばそれは彼になりますlp。 http://stackoverflow.com/a/39420980/6535426 –

答えて

12

.NET Frameworkまたは.NET Coreを使用してASP.NETコアプロジェクトを構築することは間違いありません。あなたは本当に近いです - ちょうどいくつかの調整が必要:あなたは(やや珍しい)

  • 場所dependenciesセクションMicrosoft.NETCore.Appへの参照を内部のネイティブ・コンパイルを行うことを意図している場合を除き

    • は、runtimesセクションを削除しますnetcoreapp1.0セクション。私は、次のように変更しテストしたのだが、エラーなしで復元してコンパイル:

    project.json

    ... 
    
        "frameworks": { 
         "net461": { 
    
         }, 
         "netcoreapp1.0": { 
         "dependencies": { 
          "Microsoft.NETCore.App": { 
           "type": "platform", 
           "version": "1.0.0" 
          } 
         }, 
         "imports": [ 
          "dotnet5.6", 
          "portable-net45+win8" 
         ] 
         } 
        } 
    

    Microsoft.NETCore.App依存性は唯一、.NETのコアのために必要であり、ここでそれを追加することになりますそのフレームワークを構築するときに利用できることを確認してください。

    また、commandsセクションは廃止され、削除することができます。

  • +1

    ありがとうございました:)それは私のために働いた。 – Sachin411

    1

    次のように変更して、.net 4.6.1の.NETコアクラスライブラリを参照しました。

    私は、.NETからの.NETコアを参照しようとすると、このエラーを得ていた前に4.6.1 enter image description here

    修正:

    オリジナル

    { 
        "dependencies": { 
        "Microsoft.NETCore.App": { 
         "version": "1.0.0", 
         "type": "platform" 
        }, 
        "Interop.SHDocVw.dll": "1.1.0", 
        "Microsoft.mshtml.dll": "7.0.3300.1" 
        }, 
    
        "frameworks": { 
        //"net461": {}, 
        "netcoreapp1.0": { 
         "imports": [ 
         "dotnet5.6", 
         "portable-net45+win8", 
         "net461" 
         ] 
        } 
        }, 
    
        "scripts": { 
        "prepublish": [ "bower install", "dotnet bundle" ] 
        } 
        } 
    

    { 
        "dependencies": { 
         "Interop.SHDocVw.dll": "1.1.0", 
         "Microsoft.mshtml.dll": "7.0.3300.1" 
        }, 
    
        "frameworks": { 
         "net461": { 
         }, 
         "netcoreapp1.0": { 
         "dependencies": { 
          "Microsoft.NETCore.App": { 
          "type": "platform", 
          "version": "1.0.0" 
          } 
         }, 
         "imports": [ 
          "dotnet5.6", 
          "portable-net45+win8", 
          "net461" 
         ] 
         } 
        }, 
    
        "scripts": { 
         "prepublish": [ "bower install", "dotnet bundle" ] 
        } 
    } 
    

    を修正
    +0

    このプロジェクト。設定whooplaは混乱です。だから、彼らが.NetCoreの意味は、アセンブリやパッケージではなく、すべてを正しく参照する必要があるということです。 References - > .NetCoreAppを展開すると、.netコアアプリケーションでVersion = v1.0を開き、次にMicrosoft.NetCore.App(1.0.0)を展開します。これらの依存関係をすべて見てください。したがって、実際には単一の「コア」アセンブリではありません。古いコアを包み込んだコア。私はこれの恩恵を本当に見ていない、それはあなたのアプリを軽量化する...しかし、まだ真のコアではありません。 – chdev77

    関連する問題