ライブラリをいくつか利用したりするとちょっとしたツールでもDLLが大量になってしまう。
PrismとReactivePropertyを使ってMVVMで軽く組もうとでも思うと、
大したことない労力のEXE1つに対してDLLが実に20個近く追加されてしまう。
こうなるとDLLに埋もれてEXEを探すのが大変・・・となってしまうので解決策を探してみました。
App.configのassemblyBindingタグ内にprobingタグを追加すればできるみたいです。
下記例はexeと同階層のbinフォルダにDLLを集約するイメージ
App.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="bin" />
</assemblyBinding>
</runtime>
</configuration>
注意点としては「exe名 + .exe.config」のファイルは必ずEXEと同階層にいないと動かないので注意
(このConfigを見て、設定したフォルダ内のDLLを見に行くので当たり前に必要ですね)
勉強がてらにちょっとしたツールに大層なライブラリを突っ込むことをよくするので、これでスッキリEXEを叩くことができ、かつ気兼ねなく勉強もできます。
#参考元
DLLの配置場所を変更する(probing, codebase, developmentMode)
#こういうのもアリ
実行ファイルとDLLを一つにまとめる