VB2008の初心者です。
プログラムが完成し配布したいのですが、そこで質問です。
まず、ディレクトリが
bin obj publish
この3つのファイルの中身の違いがよくわかりません。
とくに、bin obj には双方ともにDebugとReleaseがあり
どのEXEファイルも正常に動作します。
ビルドや発行の違いや、配布するときの手順など教えてください。
リリースでコンパイルしてください。
Releaseだと、余計なdebug文とかを削除してくれるので、
容量も小さくなるし、その分若干速度が速くなります。
発行やビルドはどうちがうのですか?
編集 削除bin obj もわかりません。
編集 削除obj のフォルダのほうがファイルが多いです。
よく分からないのですが、発行のほうはなんかインストールとかしています。(CD-ROMからインストールするとかWebサイトからインストールするとかオプションに書いてありますけど)
やじゅさんが言うとおりreleaseのEXEファイルからすればいいと思います。
よくわからないので、詳しい人が居たらこちらからもお願いします。
このあたりは、「ビルドの仕組」というお話になりますね。
一般的に、「ビルド」と呼ばれている処理は、「コンパイル」と「リンク」の
2段階の作業を行います。
「コンパイル」では、ソースコードをアセンブリコード
(VB2008であればMSILですね)に変換します。
「リンク」では、コンパイルで生成したアセンブリコードとリソースなどの
周辺データを混ぜ合わせ、実際に動作するプログラムファイルを生成します。
で。
まずコンパイルの段階で、ソースコードから生成したアセンブリコードを、
一度ファイルとして保存します。
また、リンクの第一段階では、動作するプログラムファイルに混ぜ合わせる
リソース等を、混ぜ合わせることのできる状態にまで組み合わせ、
やはりこの段階で一度ファイルとして保存します。
「obj」フォルダに生成されるファイルは、この段階のものです。
objフォルダに「プログラムを生成するのに必要なすべてのファイル」が
揃ったら、今度はリンクの第二段階として、これらのファイルを組み合わせて
実際に動作するプログラムを生成し、その結果をまたファイルとして保存します。
この「動作するプログラムの保存先」が「bin」フォルダです。
---
「ビルド」にはおおまかに、「デバッグビルド」と「リリースビルド」の
2種類のビルド方法があります。
Visual Studioでは、Visual Studio IDE(開発環境プログラム)と連動して
1行ずつ実行したり、強制的に別の位置のコードまで実行ポインタを
移動させたりすることで、柔軟にデバッグ作業ができるようになっています。
「IDEと連動してデバッグできる状態で動作」するために、通常のビルドではなく、
あちこちにIDEと連動するための目印を埋め込んだり、デバッグ専用の
コマンドまでコンパイルして生成するビルドが「デバッグビルド」です。
これはコンパイルの段階からデバッグ情報を埋め込んだコードを生成しますので、
コンパイル結果を「obj\debug」、ビルド結果を「bin\debug」に保存します。
しかしこのデバッグ情報付きビルドでは動作が遅く、またファイルサイズも
大きくなります。
完成した時点ではデバッグ情報はまったく必要なくなりますので、
大きくて重いだけ損です。
そこで、配布できる完成版を生成するために「リリースビルド」を行います。
リリースビルドのコンパイル結果は「obj\release」、ビルド結果は「bin\release」に
保存されることとなります。
---
Windowsアプリケーションプロジェクトがひとつだけのソリューションであれば、
ここまでで配布できます。bin\Releaseの中にあるファイルを全部コピーしてやれば
いいんですね。
で、例えば、簡単なインストーラを作成したい時や、ClickOnceプログラムとして
配布したい時、またWebアプリケーションをWebサーバへアップしたい時などに、
「発行」を使います。
「発行」は、bin\releaceに保存されている「動作するプログラムファイル群」を、
発行ウィザードの中で指定した方法で配布/登録できるような形にまとめます。
「publish」は確かClickOnce用発行の結果を格納するフォルダだったと思います。
(すいません、ここはちょっとうろ覚え^^;)
心のもやもやがこれましたw
ありがとうございます。
僕も見せてもらいました。
ありがとうございました
ビルトってけっこういろんなことしているんですね