私はNet Coreをサポートするように更新されていない様々なライブラリに依存しているため、フルネットフレームワークの上で実行する必要があるMVC6 Webサイトを持っています。ASPNETコア/ EFコアアプリケーションNet46の上に
project.jsonファイルを誤って設定している可能性があります。ここに私が持っているものは次のとおりです。
{
"dependencies": {
"Microsoft.AspNetCore.Authentication.Cookies": "1.0.0",
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.1",
"Microsoft.AspNetCore.Razor.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.1",
"Microsoft.EntityFrameworkCore.SqlServer.Design": "1.0.1",
"Microsoft.EntityFrameworkCore.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"Microsoft.Extensions.Caching.Memory": "1.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "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.Extensions.Options.ConfigurationExtensions": "1.0.0",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0",
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"Serilog": "2.2.1",
"Serilog.Sinks.RollingFile": "3.0.1",
"Serilog.Sinks.Literate": "2.0.0",
"Serilog.Extensions.Logging": "1.2.0",
"AutoMapper": "5.1.1",
"WindowsAzure.Storage": "7.2.1",
"Microsoft.Azure.WebJobs": "1.1.2",
"Microsoft.WindowsAzure.ConfigurationManager": "3.2.1",
"UploadFramework": "1.0.0-*",
"ConnellDataCore": "1.0.0-*",
"ConnellData": "1.0.0-*",
"System.IO.Compression": "4.1.0",
"BundlerMinifier.Core": "2.2.281"
},
"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.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
"Microsoft.Extensions.SecretManager.Tools": "1.0.0-preview2-final",
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
"version": "1.0.0-preview2-final",
"imports": [
"portable-net45+win8"
]
}
},
"frameworks": {
"net46": { }
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"runtimeOptions": {
"configProperties": {
"System.GC.Server": true
}
},
"publishOptions": {
"include": [
"wwwroot",
"Views",
"Areas/**/Views",
"appsettings.json",
"web.config"
]
},
"scripts": {
"prepublish": [ "bower install", "dotnet bundle" ],
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
}
これが依存するすべてのプロジェクトは、Net46の上に構築されています。私はのConfigurationManager(つまり、その問題を解決する正しい方法ではない場合や、アドバイスしてください)にアクセスする必要があるため、この特定の例では、私はframeworkAssembliesエントリーを組み込んだものの
"frameworks": {
"net46": {
"frameworkAssemblies": {
"System.Configuration": "4.0.0.0"
}
}
}
:ありproject.jsonファイルはすべてのようなエントリを持っています。
これは、ASPNETコア/ EFコアアプリケーションをNet46の上で実行するように設定する正しい方法ですか?そうでない場合は、何を変更する必要がありますか?
追加情報
私はSystem.IO.Compressionアセンブリを伴わに実行している問題。具体的には、私のソリューションは構築されたが、ウェブサイトがZipArchiveにアクセスしようとするたびにクラッシュした。 System.IO.Compression.dllがサイトのbinディレクトリに展開されていないため(興味深いことに、System.IO.Compression.Zip.dll はでしたが、System.IO.Compression.dllでは役に立ちません)。
私はSystem.IO.CompressionをWebサイトのbinフォルダに手動でコピーすることでその問題を "解決"しました。しかし、手動でコピーされたDLLは、サイトの公開時にAzureにデプロイされないため、Azureベースのサイトでも同じクラッシュ問題が発生します。
これを解決しようとして、私はさまざまなプロジェクトを掘り下げ、System.IO.Compression DLLのファイルバージョンを確認しました。そして私は奇妙なことを発見しました.System.IO.Compression DLLは、私の補助プロジェクト(ウェブサイトが依存するプロジェクト)に標準のNet4.6キャッシュではなくNetCoreアセンブリキャッシュから配備されています。
私はこれが何を意味するのか分かりません。しかし、私はそれが私が遭遇している問題に関連していると思う。
私の目標は、どういうわけか>> < <プロジェクトがNet Coreのアセンブリを配備しないようにすることです。
残念ながら、私はそれを行う方法がわかりません。私は、この問題には、Net Coreアセンブリを使用することを主張している/ ASPNET Core自体のような、いくつかのリファレンスが関係していると思われる。しかし、私はそれを知らない方法を知らない。
なぜあなたはそれを誤解していると思いますか?何か間違いはありますか?それはうまく構築して公開していますか? (私はそれに何か間違いを見ることはできません、すべての依存関係とフレームワークは適切な場所にあります) –
LOL!私はめったにこのような設定の質問を投稿しないので、どの行のコードでエラーが発生したかを示す習慣は、問題が特定のコード行に関連していないためです。 Thanxはフィードバックのために、私はより多くの文脈を提供するために私の質問を編集しました。 –
がお手伝いします:https://blogs.msdn.microsoft.com/cesardelatorre/2016/06/28/running-net-core-apps-on-multiple-frameworks-and-what-the-target-framework -monikers-tfms-are-about / – Sampath