0

CentOS マシンで dnx と kestrel を使用して .Net WebApi を実行しようとしていますが、多くの「型または名前空間 'blah' が名前空間 'blahblah' に存在しません」というエラーが表示されます。何らかの理由でいくつかの古いアセンブリを使用していますが、実際には後者が定義されていません。この時点で、セルフホスト アプリケーションと同じマシン上で mono を使用して同じ WebApi を正常に実行しています。また、xbuild で正常にコンパイルされていますが、dnx でコンパイルして kestrtel でホストすることは今のところ成功していません。これは私のdnxでの最初の経験であり、私は何か間違ったことをしていると確信していますが、グーグルと読書はまだ正確に何が間違っているのかを理解するのに役立ちませんでした. 私の project.json は次のとおりです。

    {
"webroot": "./",
"dependencies": {
    "Kestrel": "1.0.0-beta5",
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta5",
    "Microsoft.AspNet.Hosting": "1.0.0-beta5",
    "Microsoft.AspNet.Mvc": "6.0.0-beta5",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta5",
    "Microsoft.Framework.ConfigurationModel.Json": "1.0.0.0-beta5",
    "System.Net.Http": "4.0.0-beta5",
    "System.Web.Http": "2.0.0",
    "Autofac": "3.5.2",
    "Autofac.WebApi2": "3.4.0",
    "Microsoft.AspNet.Cors": "5.2.3",
    "Microsoft.AspNet.SignalR": "2.2.0",
    "Microsoft.AspNet.SignalR.Core": "2.2.0",
    "Microsoft.AspNet.SignalR.JS": "2.2.0",
    "Microsoft.AspNet.SignalR.SystemWeb": "2.2.0",
    "Microsoft.AspNet.WebApi": "5.2.3",
    "Microsoft.AspNet.WebApi.Client": "5.2.3",
    "Microsoft.AspNet.WebApi.Core": "5.2.3",
    "Microsoft.AspNet.WebApi.WebHost": "5.2.3",
    "Microsoft.Owin": "3.0.1",
    "Microsoft.Owin.Cors": "3.0.1",
    "Microsoft.Owin.Host.SystemWeb": "2.1.0",
    "Microsoft.Owin.Security": "3.0.1",
    "Newtonsoft.Json": "5.0.4"
},
"commands": {
    "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5001",
    "kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:5004"
},
"frameworks": {
    "dnx451": {
    }
}}

ほとんどのエラーは System.Configuration.Configurationmanager に関連しており、dnx は System.Configuration で特定できず、System.Runtime.Caching からタイプします。後者の場合、dnx は System.Runtime.Caching をまったく見つけることができません。エラーはまた、私が使用している dnx バージョンは v4.5.1 であり、これは .Net 4.5.1 を理解するはずだとも言っています。dnvm list コマンドは 1.0.0-beta6 を示します。必要な dll を手動で提供しなければならない可能性はありますか? もしそうなら、どこに置けばいいですか?この問題の原因が異なる場合、何が原因でしょうか? 誰かが dnx に関する基本を説明できれば幸いです。つまり、その構成ファイルはどこにありますか、パッケージとdllはどこにありますか、monoを使用していますか、それとも独自のランタイムを持っていますか、どのコンパイラを使用していますか、そして特定のバージョンなどを取得する必要があります。

4

1 に答える 1

1

完全な .Net Framework SDK である dnx451 フレームワークをターゲットにしています。このフレームワークは CentOS (RedHat Clone ですよね?) では利用できず、dnxcore のみで利用できます。

依存関係には複数の実装があり、1 つは dnx 用、もう 1 つは dnxcore 用です。dnx451 にコンパイルすると、依存関係は .Net Framework SDK に依存する dnx451 の実装を使用します。dnxcore にコンパイルする場合、依存関係は (おそらく) System.Configuration.ConfigurationManager を使用しない dnxcore 実装を使用します。

System.Configuration 名前空間は、.Net Core の一部として書き直されました。

しかし、DNX ではいつものように、すべてベータ版であり、バグはどこにでもあります。

于 2015-08-12T07:04:34.233 に答える