0

私はちょうど実行ファイルとして公開する必要があるdotnet-core 2.0コンソールアプリケーションを作成しようとしています。これにより、ファイルにRuntimeIdentifierを追加する必要があります。 win-x64のサンプルアプリケーションを公開した後、約200のdllと実行可能ファイルを含む出力ディレクトリを取得します。私はあまりにも多くの気持ちを持っています - 単純なHello Worldをコンソールに印刷するだけです。dotnetコアコンソールアプリケーションで不要なdll?

dllの数を減らす方法はありますか? reducing package dependenciesと呼ばれるこの古い(今は確かに古くなった)文書では、ライブラリの手作業によるアプローチが提案されています。

dotnet-core 2.0の依存関係を減らす方法はありますか?やはりこれは問題ではなく、私は気にしないでください。ただ、完全を期すために、ここに私の例のプロジェクト定義は

されています:

<Project Sdk="Microsoft.NET.Sdk"> 
    <PropertyGroup> 
     <OutputType>Exe</OutputType> 
     <TargetFramework>netcoreapp2.0</TargetFramework> 
     <RuntimeIdentifiers>Portable;win-x64</RuntimeIdentifiers> 
    </PropertyGroup> 
</Project> 

答えて

2

「すべての依存関係は、ある方法(各々のいくつかのクラスは、あなたのアプリケーションを動作させるために使用されている)に有用であるので、あなたが言うとき、あなたは間違っています。

はこれまでのところ、リンカーを有する先端のための

https://github.com/dotnet/announcements/issues/30

+0

おかげで、展開のサイズを縮小するために新たに発表されたILリンカよりも良いツールはありません。これはうまくいくようですが、リンカが見ていない出力ディレクトリにはさらに多くのdllがあります。私はこれらが.netコアランタイムで必要とされ、私のアプリと無関係であると仮定します。とにかく私はポータブル版を好むでしょうが、これは実行可能ファイルを作成しません。アプリケーションは 'dotnet'で呼び出されなければなりません。 – ventiseis

+0

対応する問題https://github.com/dotnet/cli/issues/6237を読んで、より多くの人々が導入オプションについて混乱していることを確認します。 – ventiseis

+2

https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-publish?tabs=netcore2x明らかに '--self-contained'を使うべきです。混乱は驚くべきことではありませんが、ドキュメンテーションが頻繁に更新されて新しいものを巻き起こすため、ますます少なくなるはずです。 –

関連する問題