1. ホーム
  2. .net

.NET Core RC2での.exeファイルのビルド

2023-08-05 10:51:30

質問

新しい .NET Core RC2 テンプレートを使用してプロジェクトを構築するたびに、次のような問題が発生します。 ではなく 実行可能な.NET Framework が提供されます。 EXE ファイルで実行できます。コンソールアプリケーションをデバッグするためにF5キーを押すと、.EXEファイルを介して正常に実行されます。

C:\Program Files\dotnet\dotnet.exe 

のようなアプリケーションになります。そして、もし私が

dotnet run 

というコマンドをフォルダ内で実行すると、同様に正常に実行されます。しかし、.NET Core CLI ツールなしでアプリケーションを実行する方法はないようです。

の内容は、私の

 bin\Debug\netcoreapp1.0\

フォルダはこのようになります。

ご覧の通り、. EXE ファイルはありません。dllだけです。

私は何かを見落としているのでしょうか?それとも、私の project.json ファイルに何か問題があるのでしょうか?

{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true
  },

  "dependencies": {
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.0-rc2-3002702"
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": "dnxcore50"
    }
  }
}

ありがとうございます。

どのように解決するのですか?

.NET Coreには、実は2つのアプリモデルがあります。

  • ポータブルアプリ DNX コンソール アプリに大きく影響されていますが、これらのアプリでは .exe ファイルを生成せず、代わりに .NET Core 共有ランタイムによって実行されます (そのバージョンは Microsoft.NETCore.App パッケージによって定義され、その特別な type: platform 属性のおかげで)。ポータブルアプリを使用するには、対応する.NET Coreランタイムがマシンにインストールされている必要があります。正確なバージョンを見つけることができない場合、以下の実行時に例外がスローされます。 dotnet run .

  • スタンドアロンアプリ スタンドアロン アプリは、古い .NET コンソール アプリに似ていて、次のようなものを生成します。 .exe ファイルを生成します。.NET Core ランタイムは、アプリケーション自体に直接埋め込まれているため、マシンにインストールする必要はありません。

あなたは現在、最初のモデルを使っています。スタンドアローンモデルを使用するには、あなたの project.json :

  • を追加します。 runtimes セクションを追加して、アプリがターゲットとする環境をリストアップします (例 win7-x64 または ubuntu.14.04-x64 ). 全リストを見ることができます はこちら .
  • を削除します。 Microsoft.NETCore.App 依存関係を削除してください。代わりにこのパッケージで置き換えることができます。 "NETStandard.Library": "1.5.0-rc2-24027" .

スタンドアロンアプリの例です。

{
  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true,
    "warningsAsErrors": true
  },

  "dependencies": {
    "Microsoft.Extensions.Configuration.Binder": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.CommandLine": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",
    "Microsoft.Extensions.DependencyInjection": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",
    "NETStandard.Library": "1.5.0-rc2-24027"
  },

  "frameworks": {
    "net451": { },

    "netcoreapp1.0": {
      "dependencies": {
        "System.Net.Ping": "4.0.0-rc2-24027"
      },

      "imports": [
        "dnxcore50",
        "dotnet5.6",
        "portable-net451+win8"
      ]
    }
  },

  "runtimes": {
    "win7-x64": { }
  }
}