プログラム系統備忘録ブログ

記事中のコードは自己責任の下でご自由にどうぞ。

C#のリリースビルドのEXE中から.pdbのフルパスを除外する設定

確認環境: Visual Studio Community 2015(バージョン: 14.0.23107.156)

アプリケーションを書き、リリースビルドを行い、ふと生成されたEXEファイルをバイナリエディタで開いて検索してみると.pdbのフルパスが含まれているではありませんか。
フルパスであるため、プロジェクトがDocuments以下にある場合はユーザー名も含まれてしまいます。

C#プロジェクトのプロパティを開いて以下の操作を行うと、.pdbのフルパスがEXEに含まれないように出来ます:

英語表記の場合
「Build」タブ→「Advanced...」ボタンをクリック→表示される「Advanced Build Settings」ダイアログにて、「Debug Info:」を「none」に指定
日本語表記の場合
「ビルド」タブ→「詳細設定...」ボタンをクリック→表示される「ビルドの詳細設定」ダイアログにて、「デバッグ情報:」を「none」に指定

初期状態ではデバッグ情報はDebug Build時は「full」、Release Build時は「pdb-only」になっていると思います。

該当ダイアログについてのMSDN情報は Advanced Build Settings Dialog Box (C#) をどうぞ。

IFileOperationで異なる種類の操作を登録した時のUI表示の話

確認環境: Windows 7 SP1 64bit
IFileOperation関係の前の記事: IFileOperationで進行ダイアログ付きでディレクトリ操作を行う (.NETで必要な宣言や、本記事でも使っているCreateShellItem補助メソッドについて記述しています)
IFileOperation関係の次の記事: IFileOperationでZIPファイルを展開する方法 (次からC++を使っています)

今回の記事も、簡単のためCOMオブジェクトの解放処理を一切記述していません。ご了承ください。

続きを読む

IFileOperationで進行ダイアログ付きでディレクトリ操作を行う

確認環境: Windows 7 SP1 64bit
目的: Explorerと同様の進行ダイアログを表示しつつ、ディレクトリの移動/コピー/リネーム/ゴミ箱に移動/完全に削除、を行いたい

この記事では、.NETからCOM相互運用およびP/Invokeを経由してIFileOperationを扱うサンプルコードを記述しています。
IFileOperation関係の次の記事: IFileOperationで異なる種類の操作を登録した時のUI表示の話

続きを読む

VisualStudioのコード分析で識別子のタイプミスなどを検出する

2015/11/24 23:00頃 それなりに追記修正
2015/11/25 22:00頃 細々と追記修正
確認環境: Visual Studio 2015 Community Version 14.0.23107.0 D14REL

C#プロジェクトで、全てのルールを使ってコード分析したときのメモです。
c# - Visual Studio Code Analysis vs StyleCop + FxCop - Stack Overflow によると、VisualStudioのコード分析とFxCopは同じエンジンを使っているとのことなので、FxCopでも同様の結果を得られると思います。

続きを読む

WPFのListBoxでマウスドラッグ中の要素選択を無効にする方法

確認時の.NET Frameworkのバージョン: 4.6.00081
参考元: Disable ListBox Dragging Selection in Single SelectionMode?

2015/11/03追記: ListBox Class の派生である ListView Class の場合でも、同様の方法で対策可能です。

続きを読む