2017-05-18 18 views
16

Visual Studio 2017でNetCoreApp(v1.1)を作成しました。コンパイルすると、ビルドされたプロジェクトに期待されるEXEの代わりにDLLが生成されます。私はcsprojファイルをチェックし、出力タイプがexeに設定されていることを確認しましたが、ダイスはありません。VS2017 NetCoreAppをEXEとしてコンパイル

VS2017がまだDLLを生成している理由はありますか?私は忘れていたどこかの場所にすばやく置いていると確信しています...その1 AM。 :)

<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> 

答えて

25

.NETコアアプリケーションは、.dllファイルであると想定されています。 OutputTypeExeに設定されている場合は「実行可能」を意味し、出力が実行可能であることを保証するために必要なすべての処理を行います(エントリポイントMain()メソッド.runtimeconfig.jsonファイル)。結果のdllファイルを使用して実行されることを意図されています

dotnet yourapp.dll 

このdllファイルは、.NETコアランタイム(WindowsやLinux、MacOSの)によってサポートされているすべてのプラットフォームで動作します。これは、「ポータブル」または「フレームワークに依存する」展開と呼ばれます。

実際に.exeファイルが必要な場合は、自己完結型の展開を検討してください。これにより、.netコアランタイムとyourapp.exeファイルの独自のコピーが含まれる出力が作成されますが、公開されたアプリケーションのサイズも大きくなり、新しいバージョンのランタイムがリリースされると更新する必要があります。 また、作成されたアプリケーションは、のために公開されたオペレーティングシステムでのみ動作します。

展開オプションとその設定方法の詳細については、.NET Core application deploymentを参照してください。

+3

さまざまな導入戦略に関する情報をありがとう。それはもう少し.net-coreの理解に役立ちました。 – ajawad987

関連する問題