LoginSignup
105
127

More than 3 years have passed since last update.

C#でクラスライブラリを開発する時に必ずやった方が便利な設定

Posted at

はじめに

C#でクラスライブラリを開発する時に、必ずやった方が便利な設定の紹介です。
前提として、その開発したクラスライブラリのDLLファイルが、別のソリューション(.sln)から参照される場合を想定しています。
(同じソリューション内で[プロジェクト]の参照しかしない場合は、本稿の設定をしなくても問題ありません)

デフォルト設定のままで不便なこと

開発したクラスライブラリを、デフォルト設定のままで別のソリューションから参照させた場合、以下の2つの不便なことが起きます。
ここで言う「デフォルト設定」とは、Release ビルドしたDLLファイルを参照させた場合を意味します。

インテリセンスでコメントが表示されない

開発したクラスライブラリが、以下のようにプロパティやメソッドのコメントを記載しているとします。


    /// <summary>
    /// 人を表すクラス
    /// </summary>
    public class Person
    {
        /// <summary>
        /// 名前
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 指定されたメッセージで挨拶する
        /// </summary>
        /// <param name="message">メッセージ</param>
        public void Greet(string message)
        {
            Console.WriteLine(message);
        }
    }

しかし、そのDLLファイルを参照させた別のプロジェクトから利用する際に、メソッドのコメントがインテリセンスで表示されません。
image.png

デバッグ実行時にステップインができない

デバッグ実行時に、参照しているDLLのクラスのメソッドにステップインしたいと思っても、ステップインできません。

お勧めする便利な設定

以下の設定を行うことで、両方の問題が解消できます。

インテリセンスでコメントが表示されるようにする

-doc (C# コンパイラ オプション) を付けることで、XML ファイル内にドキュメント コメントを含めることができます。
具体的には、以下の手順でプロジェクト設定を変更すると、ビルド時にDLLファイルと同じフォルダにXMLファイルが作成されます。

  1. プロジェクトの [プロパティ] ページを開きます。
  2. [ビルド] タブをクリックします。
  3. [XML ドキュメント ファイル] プロパティにチェックを付けます。

-doc の詳細は以下を参照ください。
-doc (C# コンパイラ オプション) | Microsoft Docs

上記で作成したXMLファイルを、参照するDLLファイルと同じフォルダに格納しておけば、DLLファイルの読み込み時に、XMLも一緒に読み込んでくれます。その結果、下図のように、インテリセンスでコメントも表示されるようになります。
image.png

デバッグ実行時にステップインできるようにする

デバッグ実行するためには、ビルド時にDLLと一緒に生成される pdbファイルが必要になります。また、Releaseビルドのファイルではデバッグ実行できないため、Debugビルドのファイルに差し替える必要があります。
従って、DebugビルドしたDLLとpdbファイルを同じフォルダに格納し、そのDLLファイルを参照させることで、そのDLLのメソッドをステップ実行できます。

詳細は以下を参照ください。
Visual Studio デバッガーでシンボル (.pdb) ファイルとソース ファイルの指定 (C#、C++、Visual Basic、 F#) | Microsoft Docs

下図は、DLLファイルを参照したプロジェクトから、DLL内のクラスのメソッドにステップインした時の画面です。ソースコードのコメントや行番号も確認できます。
image.png

なお、テスト実施やリリースの際には、Release ビルドのDLLを利用する必要があるため、別途 ReleaseビルドのDLLを別フォルダに格納しておくことをお勧めします。インストーラを作成するスクリプトなどは、ReleaseビルドのDLLを利用するように設定しておくと良いと思います。

まとめ

DebugビルドしたDLLとXMLとpdbのファイルを同じフォルダに格納した上で、参照させると便利です。

私は上記手法を用いて こちらのツール を作っています。

Twitterでも開発に役立つ情報を発信しています → @kojimadev

105
127
0

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
105
127