0

私は、DNXCore のみを対象とすることに非常に注意を払ってきた DNXCore5 アプリケーションを持っています。とにかく、ごくわずかな手順で Windows Server 2012 R2 に問題なく公開できます。私はUbuntuで同じことをしようとしています。環境をセットアップし、公開したプロジェクトをコピーしました。Kestrel を Web サーバーとして使用しているため、Windows でも Linux と同じです。

私はすでに dnvm をセットアップしており、ランタイムのベータ 5 を正常にインストールしています。次に、Visual Studio が作成した kestrel スクリプトを実行可能としてマークします。

chmod +x ケストレル

(何らかの理由で) そこにない dnx のローカル コピーを起動しようとするため、最後の行が失敗するため、kestrel スクリプトをそのまま実行できません。

exec "$DIR/approot/runtimes/dnx-coreclr-win-x64.1.0.0-beta5/bin/dnx" --appbase "$DNX_APPBASE" Microsoft.Framework.ApplicationHost kestrel "$@"

そのため、最後の行を次のように変更します。

dnx --appbase "$DNX_APPBASE" Microsoft.Framework.ApplicationHost kestrel "$@"

dnx だけを入力すると、次の出力が得られるため、正しいフレームワークを使用していることがわかります。


Microsoft .NET Execution environment Mono-x64-1.0.0-beta5-12103

Usage: dnx [options]

Options:
  --appbase <PATH>                 Application base directory path
  --lib <LIB_PATHS>                Paths used for library look-up
  --debug                          Waits for the debugger to attach before beginning execution.
  -?|-h|--help                     Show help information
  --version                        Show version information
  --watch                          Watch file changes
  --packages <PACKAGE_DIR>         Directory containing packages
  --configuration <CONFIGURATION>  The configuration to run under
  --port <PORT>                    The port to the compilation server

./kestrel 経由で kestrel スクリプトを起動すると、


System.InvalidOperationException: The current runtime target framework is not compatible with 'MyApp'.

Current runtime Target Framework: 'DNX,Version=v4.5.1 (dnx451)'
  Type: Mono
  Architecture: x64
  Version: 1.0.0-beta5-12103

Please make sure the runtime matches a framework specified in project.json
  at Microsoft.Framework.ApplicationHost.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0
  at Microsoft.Framework.Runtime.Common.EntryPointExecutor.Execute (System.Reflection.Assembly assembly, System.String[] args, IServiceProvider serviceProvider) [0x00000] in <filename unknown>:0
  at dnx.host.Bootstrapper.RunAsync (System.Collections.Generic.List`1 args, IRuntimeEnvironment env) [0x00000] in <filename unknown>:0

このエラーを取り除く方法を知っている人を見つけるのに苦労しています。プロジェクト (Web アプリ、およびクラス ライブラリ) のビジュアル スタジオ ソリューション エクスプローラーで参照ノードを開くと、完全なフレームワークを対象としていません。どちらも「DNX Core 5.0」のノードが 1 つしかなく、プロジェクトのプロパティ セクションでそれをターゲットにしています。この参照をどこから取得していると思われるかはわかりません。私の project.json ドキュメントは次のとおりです。


リブ

  "dependencies": {
  },

  "frameworks": {
    "dnxcore5": {
      "dependencies": {
        "System.Collections": "4.0.10-beta-23019",
        "System.Runtime": "4.0.20-beta-23019",
        "Microsoft.CSharp": "4.0.0-beta-23019"
      }
    }
  }

ウェブアプリ

  "dependencies": {
    "Microsoft.Framework.ConfigurationModel": "1.0.0-beta5",
    "Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta5",
    "Microsoft.AspNet.Mvc": "6.0.0-beta5",
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta5",
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta5",
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-beta5",
    "Microsoft.Framework.Configuration.Json": "1.0.0-beta5",
    "Microsoft.Framework.Logging": "1.0.0-beta5",
    "Microsoft.Framework.Logging.Console": "1.0.0-beta5",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta5",
    "Newtonsoft.Json": "7.0.1",
    "Microsoft.AspNet.Mvc.WebApiCompatShim": "6.0.0-beta5",
    "System.Security.Cryptography.DeriveBytes": "4.0.0-beta-23019",
    "MyLib": "1.0.0-*",
    "Kestrel":  "1.0.0-beta5"
  },

  "frameworks": {
    "dnxcore5": {
      "dependencies": {
        "System.Runtime.Extensions": "4.0.10-beta-23019",
        "System.Collections": "4.0.10-beta-23019",
        "System.Runtime": "4.0.20-beta-23019",
        "Microsoft.CSharp": "4.0.0-beta-23019",
        "System.Private.Networking": "4.0.0-beta-23109",
        "System.Net.Security": "4.0.0-beta-23109"
      }
    }
  },

ホスティングに Kerstrel を使用していることも確認しました。何か案は?私は完全に立ち往生しています。

4

0 に答える 0