地味に困ったので投稿。
Assembly.GetExecutingAssembly().Location
以上のコードを、展開された先で実行されるdll上で実行すれば取得できる。
Environment.GetCommandLineArgs()[0]
因みに、展開元のパスは基本的に上のコードで取得している。
<PublishSingleFile>true</PublishSingleFile>
現状、上のタグを追加してPublishされた単一EXEファイルを実行する際の展開先には、dllのみが展開されるだけで、pbdファイルが含まれていない。
それだとエラー時の詳細情報が取得できないので、それらを取得するためのpbdファイルを移動するために展開先のパスが必要だった。
何故、pdbファイルが展開されないのかは不明。。。
知っている方がいれば、教えていただけると幸いです。