ひとりも見捨てないことを、あきらめない

学校教育、社会教育、数学、技術家庭科、Youtube、EdTech、ICT、プログラミング、その他

実行ファイルをコンパクトにまとめる 01/11 土

 Visual StudioC# と NET 4.7 あたりをつかってしばらくプログラミングしていましたが、SQLite や PDFium などを追加していくと、どんどん DLL ファイルが増えていって、実行ファイルが埋もれていきます。

 また、実際に配布する際に、いろいろなファイルが含まれていると、解凍したときにトラブルの原因になりえます。

 そこで、「いろいろなファイルをひとつにまとめることはできないだろうかと」と検索してみたところ、Visual StudioC# と Net Core を使うと、標準で「ひとつにまとめる機能」が使えることがわかりました。

 たとえば、プロジェクトとして、WinPro4 という名前のプロジェクトがあったとします。単一ファイルを格納する場所として、single というフォルダを作っておきます。

 

f:id:takase_hiroyuki:20200112063608p:plain

さて、プログラムでは、通常のビルドでは、こんな感じでファイルが作られます。

 

f:id:takase_hiroyuki:20200112063453p:plain

 そこで、Visual Studio を用いて、次のような手順で単一ファイルを発行すると、目標の単一ファイルを作ることができます。

f:id:takase_hiroyuki:20200112065628p:plain

 

f:id:takase_hiroyuki:20200112065821p:plain

 

f:id:takase_hiroyuki:20200112070345p:plain

 

f:id:takase_hiroyuki:20200112070615p:plain

 

f:id:takase_hiroyuki:20200112070831p:plain

f:id:takase_hiroyuki:20200112071034p:plain

 

f:id:takase_hiroyuki:20200112071148p:plain

 

 いろいろな DLL ファイルを取り込んでいるので、36MB という大きさになっていますが、自分としては「まあ、こんなものかな」という感覚です。

 ただし、Visual Studio の Net Core では、フォームのデザイナーが使えません。したがって、さまざまなコントロールを、すべてプログラムで組み込んで行かなければなりません(昔は、すべてのプログラムが、そのような感じでしたけれど)。

 Visual Studio のフォーム・デザイナーは、とても使いやすいので、私の場合には、ア、まず Net 4.7 あたりで、フォームデザインする。イ、そのコードを真似して、Net Core でプログラムを作っていく。という二段階でプログラムしています。