Help us understand the problem. What is going on with this article?

WPFで読み込むDLLたちを別フォルダにまとめる

More than 1 year has passed since last update.

ライブラリをいくつか利用したりするとちょっとしたツールでも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を一つにまとめる

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away