データアクセス用の単一のクラスライブラリを使用して簡単な.netコアMVCアプリケーションを構築し、構築/展開/展開に必要なアイデアを得たかったのですが、 LinuxでCoreを実行します。私が望むほどシンプルではありませんでした!.Net Core MVCアプリケーションをUbuntu 16.04にインストールする:
EDIT:誰もが興味を持っている場合はここで、ソリューションのコピーです: https://s3.amazonaws.com/kilonova-public/code/CoreCrossPlatform.zip
私は、これらの命令ごとのUbuntu Serverの16.04とインストールDOTNETコア/ wを一緒にVirtualBoxのVMを投げた:
https://www.microsoft.com/net/core#ubuntu
VS2015のホスト(Win10)に最新の必要なすべてのビットをインストールし、MVCアプリと「DataAccess」という単一クラスライブラリを備えたソリューションを作成しました。最新のコアプロバイダを使用してMySQLと話し合うのはEF Coreです。私はそれを実行/デバッグするときに、すべてWin10ホスト上で完璧に動作します。データを引き上げると素晴らしいです。
1.0.0-preview2-003121
しかし、私はUbuntuのVMにデプロイするとき、私はクラスライブラリの依存関係に次のエラーを取得:
は はホストとVMの両方で「DOTNETの--versionは、」私を与えます
Project corecrossplatform (.NETCoreApp,Version=v1.0) will be compiled because the version or bitness of the CLI changed since the last build
Compiling corecrossplatform for .NETCoreApp,Version=v1.0
/opt/dotnet/corecrossplatform/project.json(24,23): error NU1002: The dependency DataAccess does not support framework .NETCoreApp,Version=v1.0.
Compilation failed.
0 Warning(s)
1 Error(s)
Time elapsed 00:00:00.0187782
"dotnet restore"または "dotnet run"を実行するかどうかにかかわらず発生します。正直言って、このことを正しく展開しているかどうかはわかりません。ドキュメンテーションは不安定で、私はいくつかの推測をしています。私はプロジェクトフォルダ "src \ CoreCrossPlatform"(bin、Program.cs、appsettings.jsonなどを含む)からVMにすべてをコピーしました。これはVM内の "dotnet"コマンドを実行しています。
DATAACCESS .jsonファイル:
{
"version": "1.0.0-*",
"dependencies": {
"Microsoft.EntityFrameworkCore": "1.0.0",
"MySql.Data.Core": "7.0.4-IR-191",
"MySql.Data.EntityFrameworkCore": "7.0.4-IR-191",
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
}
}
}
MVCのproject.json:注意すべき
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.0",
"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.0",
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "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",
"DataAccess": "1.0.0-*"
},
"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"
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
},
"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%" ]
}
}
何か:私は "DOTNET新しい" を使用してサンプルプロジェクトを実行し、復元、VIS実行上のチュートリアルのリンク、それはうまく動作します。
私には何が欠けていますか?もう一つの側面の質問:このタイプのアプリをLinuxボックスに公開するにはどうすればよいでしょうか?私はその部分を閉じていますか?
ありがとうございました。
EDIT:すべての午後、この死んだ馬を蹴っている間、私はこの「NU1002」エラーに関連し、私はオンラインで見つけるいくつかのノートを、比較、およびサンプルプロジェクト「DOTNET新しい」が生成されます。
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
}
},
"imports": [
"dnxcore50",
"dotnet5.6",
"portable-net45+win8"
]
}
}
EDIT:goatyに多くのおかげで:彼としてノー成功...同じエラーで、次のように両方のproject.jsonファイル(MVCとCLASSLIB)の「枠組み」のセクションを変更してみましたコメントに指摘し、ソリューション全体をコピーしてビルドすると、ビルドに成功します。しかし、私はエラーなしで実行することはできません。 MySQLのEFコアの依存関係を回復していないよう:
Project CoreCrossPlatformFlat (.NETCoreApp,Version=v1.0) will be compiled because the version or bitness of the CLI changed since the last build
Compiling CoreCrossPlatformFlat for .NETCoreApp,Version=v1.0
/opt/dotnet/corecrossplatform/src/CoreCrossPlatformFlat/project.json(25,52): error NU1001: The dependency MySql.Data.EntityFrameworkCore >= 7.0.4-IR-191 could not be resolved.
Compilation failed.
0 Warning(s)
1 Error(s)
に役立つことを願っています
このような構造をお勧めします。あなたのsrc/CoreCrossPlatformフォルダには、Webプロジェクトだけがあります。クラスライブラリはありませんか? –
@goaty - 本当に変です。ルートに圧縮されていない可能性がありますか?新鮮なコピーを取り直しました。ありがとう。 –
あなたの新しいアップロードはアクセスが拒否されたと言っています:) –