注)hoge.exeをVisual Studioのデバッガで実行したときの話。 Process ps = Process.GetcurrentProcess(); ProcessModuleCollection mods = ps.Modules; foreach(ProcessModule mod in mods) { if(String.Compare(mod.ModuleName, "hoge.exe", true) { Console.WriteLine("found"); break; } }
これは普通に実行すると"found"が表示されますが、デバッガでは表示されません。規定ではホストプロセス(hoge.vhost.exe)経由で動くため、ModuleNameがhoge.vhost.exeになってしまうから。AppDomain.CurrentDomain.FriendlyNameやAssembly.GetCallingAssembly().FullNameも現象は同じ。プロジェクトのプロパティの「デバッグ」で「Visual Studio ホスティング プロセスを有効にする」をはずしましょう。もちろん副作用もあります。
- 遅くなる
- 部分信頼アプリのデバッグができなくなる
- デザイン時の式評価ができなくなる