Visual Studio 2017を使用して.NET CoreアプリケーションをEXEファイルとしてコンパイルする
質問内容
Visual Studio 2017 で .NET Core アプリケーション (v1.1) を作成しました。それをコンパイルすると、ビルドされたプロジェクトに期待されるEXEファイルではなく、DLLファイルが生成されます。私は、チェックした
csproj
ファイルを確認し、出力タイプに
exe
に設定されていることを確認しましたが、ダメでした。
Visual Studio 2017 はなぜ DLL ファイルが生成されたままなのですか?
どこかに忘れているクイック設定があるはずなのですが・・・。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp1.1</TargetFramework>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Core.EF.SqlServer\Core.EF.SqlServer.csproj" />
</ItemGroup>
</Project>
どのように解決するのですか?
2019年にアップデートします。
.NET Core 3.0+ プロジェクトには、デフォルトでビルドするプラットフォーム用の実行可能ファイルが含まれるようになりました。これは単なるシム実行可能ファイルであり、メイン ロジックはまだ
.dll
ファイルの中にあります。
しかし、.NET Core 3.0ではシングルファイルデプロイメントも導入されているため、デプロイ時に
dotnet publish -r win-x64 -p:PublishSingleFile=True --self-contained false
は、すべての依存関係を含む単一の .exe ファイルを作成します。あなたは
--self-contained
を
true
に変更し、.NET Core Runtime も含めることで、ターゲット マシンに .NET Core をグローバルにインストールする必要がなくなりました。
オリジナル
.NET Coreアプリケーションは、本来は
.dll
のファイルです。
OutputType
に設定する
Exe
は実行可能であることを意味し、出力が実行可能であることを保証するために必要なすべてのことを行います(エントリーポイントは
Main()
メソッドを使用します。
.runtimeconfig.json
ファイル)。出来上がったDLLファイルは、これを用いて実行することを想定しています。
dotnet yourapp.dll
この DLL ファイルは、.NET Core ランタイムがサポートするすべてのプラットフォーム (Windows、Linux、macOS) で機能します。これは、quot;portable" または "framework dependent" 配置と呼ばれます。
もし、本当に
.exe
ファイルが必要な場合は、自己完結型のデプロイメントを検討してください。これは、.NET Core ランタイムの独自のコピーを含む出力と
yourapp.exe
ファイルを含む出力を作成しますが、公開アプリケーションのサイズが大きくなり、ランタイムの新バージョンがリリースされたときに更新する必要があります。
また、結果として得られるアプリケーションは、公開されたオペレーティングシステム上でのみ動作します。
を参照してください。 .NET Coreアプリケーションのデプロイメント をクリックすると、デプロイメントオプションの詳細とその設定方法が表示されます。
関連
-
[解決済み] 致命的なエラーが発生しました。必要なライブラリhostfxr.dllが見つかりませんでした。
-
[解決済み] Visual StudioからPerfwatson2.exeを無効化する方法
-
[解決済み] ファイルまたはアセンブリをロードできませんでした Microsoft.Extensions.Logging.Abstractions
-
[解決済み] .NET Core 3.0とIIS:HTTPエラー500.30 - ANCMプロセス内起動の失敗:coreclrの読み込みに失敗しました。
-
[解決済み] EXEを出力する.NET Coreコンソールアプリケーションを構築する
-
[解決済み】.NET Coreコンソールアプリケーションをコマンドラインから実行する方法
-
[解決済み] Visual Studio 2017 (.NET Core)での自動バージョニング
-
[解決済み] .NET CoreでデスクトップGUIアプリケーションを作ることは可能か?
-
[解決済み] Visual Studio 2017 で Microsoft.NETCore.App パッケージを更新できない(「プロジェクトによってブロックされた」)。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 致命的なエラーが発生しました。必要なライブラリhostfxr.dllが見つかりませんでした。
-
[解決済み] ファイルまたはアセンブリをロードできませんでした Microsoft.Extensions.Logging.Abstractions
-
[解決済み] .NET Core 3.0とIIS:HTTPエラー500.30 - ANCMプロセス内起動の失敗:coreclrの読み込みに失敗しました。
-
[解決済み] EXEを出力する.NET Coreコンソールアプリケーションを構築する
-
[解決済み】.NET Coreコンソールアプリケーションをコマンドラインから実行する方法
-
[解決済み] .NET CoreでデスクトップGUIアプリケーションを作ることは可能か?
-
[解決済み] Visual Studio 2017 で Microsoft.NETCore.App パッケージを更新できない(「プロジェクトによってブロックされた」)。