あなたが説明する動作は便利です。これにより、呼び出し元は、使用しようとしているコードの詳細を確認することで、何が問題なのかを正確に把握できます。Microsoft は .NET Framework source に対してもこれをサポートしており、私の意見ではかなり便利です。なぜ無効にしたいのかよくわかりません。必要な場合に備えて DLL のコードを利用できるように、デバッグ時に (ステップ イン)F10の代わりに (ステップ オーバー) をいつでも使用できます。F11
ただし、DLL からどのコードにもステップ インできないことが確実な場合は、クライアント アプリケーションでデバッグ シンボルを使用できないようにする必要があります。Visual Studio は、これらのシンボルをPDB ファイルの形式で生成します。このファイルには、ソース ファイルの場所と、生成されたコードとソース行の間のマッピングが含まれています。
他のいくつかの回答とは対照的に、デバッグシンボルの生成は、コードが最適化されているかどうかとは関係ありません (たとえば、「リリース」ビルド)。これについては、最適化されたビルドになぜシンボルが必要なのかという文脈で以前に書いたことがありますが、要点は、これらが 2 つの直交する設定であるということです。最適化をオンにしてシンボル生成をオフにすることも、その逆も可能です。すべてのビルドでデバッグ シンボルを生成することを強くお勧めします。
プロジェクトのプロパティでデバッグ シンボルの生成を無効にするか ([詳細...] ボタンの下に隠されています)、または PDB ファイルを移動して、デバッグ時にクライアント アプリケーションがそれらを見つけられないようにすることができます。既定では、ビルドはそれらをバイナリ出力と同じディレクトリに配置するため、DLL への参照を追加すると、Visual Studio はそれらを簡単に見つけることができます。シンボルまたはバイナリのいずれかを移動すると、それらを見つけることができなくなります。(デバッガーはシンボル パスも検索しますが、シンボルがそこに到達しない可能性があります。)