2016-07-25 44 views
13

net461 başvuruları kullanılarak çalışan bir ASP.NET Core 1.0 tam uygulamasına sahibim. Şimdi başka bir çerçeve eklemeye çalışıyorum - netcoreapp1.0. Bunun için, böyle benim project.json güncelledik:Hatası "Microsoft.NETCore.App 1.0.0, framework desteklemiyor. NETFramework, Sürüm = 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" 
     ] 
    } 
} 

project.json değiştirdikten sonra, bu hata var:

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.

Bu sorunu çözmek için, ben dotnet restore komutunu ama hiçbir şans koştu.

Sonra ben bu bloğu ekledi: - NET

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

Temelde, benim uygulamalarda iki referansı eklemek istiyorum: bu bloğu eklendikten sonra

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

, farklı bir hata var Çerçeve 4.6.1 ve ASP.NET Çekirdek 1.0.

Bu hatayı nasıl çözebilirim?

+0

Cevabıma bir göz atabilirsin, umarım Yip. http://stackoverflow.com/a/39420980/6535426 –

cevap

12

.NET Framework veya .NET Core kullanarak ASP.NET Core projeleri oluşturmak kesinlikle mümkündür. Gerçekten yakınsın - sadece birkaç küçük düzenlemeyle gerekli: Eğer (biraz sıradışı)

  • Place dependencies bölüm yılında Microsoft.NETCore.App referans içindeki yerli derleme yapmak niyetinde sürece

    • , runtimes bölümü kaldırın netcoreapp1.0 bölümü. Aşağıdaki değişiklik test ettik ve onu geri yükler ve hatasız derler:

    project.json Microsoft.NETCore.App bağımlılık sadece .NET Çekirdek için gereklidir

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

    ve burada ekleyerek yapacak Bu çerçeve için oluştururken kullanılabilir.

    Ayrıca, commands bölümü kullanımdan kaldırılmıştır ve kaldırılabilir.

  • +1

    Teşekkürler Nate :) Bu benim için çalıştı. – Sachin411

    1

    Aşağıdakileri değiştirerek .net çekirdek sınıf kitaplığını .net 4.6.1'de başvurulan.

    .net gelen .net çekirdeğini başvurmak çalışırken bu hatayı başlamıştı Önce 4.6.1 enter image description here

    Fix:

    Orjinal

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

    düzeltildi
    +0

    Bu proje.config whoopla bir karmaşadır. Yani .NetCore ile kastettikleri şey, yine de her şeyi doğru bir şekilde değil, bir meclis olarak değil, bir pakete göndermelisiniz. Referansları -> .NetCoreApp, Sürüm = v1.0 bir .net çekirdek uygulamasında genişletir ve sonra Microsoft.NetCore.App (1.0.0) 'ı genişletirseniz, oradaki tüm bağımlılıklara bakın. Yani gerçekten tek bir "Çekirdek" meclisi değil. Eski kurulların etrafına sarılmış bir Çekirdek. Gerçekten bunun faydalarını görmüyorum, uygulamanızı daha hafif hale getiriyor ... ama yine de gerçek bir Çekirdek değil. – chdev77