MVC 5と.net 4.6を使用して、モバイルアプリも接続できるWeb APIを作成しています。
プロジェクトをビルドするたびに、すでに存在する参照を追加する必要があり、プロジェクト内のすべてのタイプが「存在しない」ことを示すエラーが何百も表示されます。これらのエラーの例:(タイトルに含まれていない)
私が試したもの:
UPDATE:-My project.json
ファイルは次のようになります。 (Karlsの回答に基づいて変更した後、エラーリストは10個になりましたが、以前と同じエラーのままです。)
{
"commands": {
"web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000"
},
"dependencies": {
"Microsoft.AspNet.Server.IIS": "1.0.0-beta5",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta5",
"Microsoft.AspNet.Diagnostics": "1.0.0-beta5",
"Microsoft.AspNet.Mvc": "6.0.0-beta5",
"System.Runtime": "4.0.20-beta-23019"
},
"exclude": [
"wwwroot",
"node_modules",
"bower_components"
],
"frameworks": {
"dnx451": {
"frameworkAssemblies": {
"System.Data": "4.0.0.0",
"System.Data.DataSetExtensions": "4.0.0.0",
"System.Data.Linq": "4.0.0.0"
}
}
},
"publishExclude": [
"node_modules",
"bower_components",
"**.xproj",
"**.user",
"**.vspscc"
],
"version": "1.0.0-*",
"webroot": "wwwroot"
}
ここでは少し推測していますが、System.Data.*
に通常のdnx451
を使用しているのではないかと疑っていますが、dnxcore50
を補うものはありません。コアエディションもターゲットにしていますか、それともプロジェクト作成の残り物ですか?コアエディションをターゲットにし、古いSystem.Data.*
を使用する場合は、このようなアセンブリから何かをラップする必要があります。
#if DNX451
// Do some DNX451 specific stuff here
#endif
そしてその逆も同様です。
#if DNXCORE50
// Do some DNXCORE50 specific stuff here
#endif
ただし、これをサポートすることをまだ考えていない場合は、フレームワークリストからdnxcore50
を削除するだけで、エラーはおそらくなくなるでしょう。
bin
とobj
を削除して再構築します。
走る dotnet restore
パッケージマネージャーコンソールのコマンドと問題が解決しました。
私の場合、dnxのベータ版に対してビルドするように設定されたプロジェクトがありました。他のプロジェクトで使用していたバージョンに対してビルドするように変更すると、修正されました。
同じエラーが発生したため、私のプロジェクトはVisual Studio 2017で開いたときにコンパイルされませんが、Visual Studio 2015でコンパイルされます(VSの両方のバージョンが同時にインストールされています)。 :-o
私にとっては、ソリューションに新しいプロジェクトを追加したときに問題が発生しました。ソリューションを再構築すると、エラーはなくなりました。