265
305

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Visual StudioユーザーがReleaseビルドをするときに必ずやってほしい2つの設定

Last updated at Posted at 2015-12-29

はじめに

前からちょくちょく見受けられたけれども、やはりやってしまう人は多いようなので
自戒の念と共にここに記しておきます。
ソフトウェアをDLして解凍またはセットアップしたexeのところに、appname.vshost.exeとかappname.pdbとか見かけたことはありませんか?
これらはVisual Studioでビルドする際に、Debugビルドでは非常に有効なファイルですが、Releaseビルドでは不要なファイル達だったりします。
なので、必ず下記の2つの設定をReleaseビルド構成に施しておきましょう。

1. ホスティングプロセスを無効にすること

これはあまり見かけなくなったけど、やはりやってしまう人はいるようです。
プロジェクトのプロパティでデバッグページにある

  • Visual Studio ホスティング プロセスを有効にする(O)

のチェックを外して

  • Visual Studio ホスティング プロセスを有効にする(O)

としましょう。
debug_tab.png

こうすることで無駄なappname.vshost.exeというファイルが生成されなくなります。

2. pdbファイルの出力をしない

こちらはまだまだ結構な人が出力しちゃってるんじゃ無いでしょうか?
そしてexeを配布する際に、pdbファイルを削除してzipで固めて…とかやってるのではないかと思います。
pdbファイルは

Program DataBase (プログラムデータベースファイル)

と言って、デバッグとプロジェクト状態情報を保持しています。
すなわち、このファイルの中には各種情報が詰まっているのです。
もしもVisual Studioのデフォルトの場所(マイドキュメント)でプロジェクトを作っていたならば、あなたの使っているPCのユーザー名が漏洩します。確実に。
またDebugビルドではこのファイルを元にブレークポイントがかけられますので、Debug時は有効なファイルであることは確かです。
しかしReleaseビルド時には不要ですね。

なのでpdbファイルを出力しないように設定を変えましょう。
こちらも同じくプロジェクトのプロパティで、ビルドページから右下にある詳細設定を押下し、ビルドの詳細設定ウィンドウを出します。
その中の出力にあるデバッグ情報というところがpdb-onlyとなっているはずですから、こちらをnoneに変えましょう。
build-advanced.png

尚、Visual Studio 2015となった今でも、上記2つのデフォルト設定を行うところは存在していないようです。
なので新規プロジェクトを作成した際には、忘れず上記の2つ設定を行っておきましょう。
またこれらの設定はどんなプロジェクトであってもやっておきましょう。フォーム/コンソールは言わずもがな、Visual StudioのExtention(配布時の拡張子がvsix)やWebプロジェクトであってもやっておきましょう。
Extensionであるvsixファイルはただのzipファイルですから、拡張子を変えたら中身が丸見えです。解凍してファイルを抜き出すことも…。

さぁ、年明けの仕事始めの際、自分の持ってるVisual Studioのプロジェクトの設定を見直すことから始めよう!

265
305
8

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
265
305

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?