Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
282
Help us understand the problem. What is going on with this article?

More than 5 years have passed since last update.

@lainzero

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

はじめに

前からちょくちょく見受けられたけれども、やはりやってしまう人は多いようなので
自戒の念と共にここに記しておきます。
ソフトウェアを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のプロジェクトの設定を見直すことから始めよう!

282
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
282
Help us understand the problem. What is going on with this article?