私はちょうど実行ファイルとして公開する必要がある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>
おかげで、展開のサイズを縮小するために新たに発表されたILリンカよりも良いツールはありません。これはうまくいくようですが、リンカが見ていない出力ディレクトリにはさらに多くのdllがあります。私はこれらが.netコアランタイムで必要とされ、私のアプリと無関係であると仮定します。とにかく私はポータブル版を好むでしょうが、これは実行可能ファイルを作成しません。アプリケーションは 'dotnet'で呼び出されなければなりません。 – ventiseis
対応する問題https://github.com/dotnet/cli/issues/6237を読んで、より多くの人々が導入オプションについて混乱していることを確認します。 – ventiseis
https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-publish?tabs=netcore2x明らかに '--self-contained'を使うべきです。混乱は驚くべきことではありませんが、ドキュメンテーションが頻繁に更新されて新しいものを巻き起こすため、ますます少なくなるはずです。 –