mogmo .NET

C#/XAML/VB6たまにC++についてメモ程度に書いていく。あくまで自分用。責任は取れません。

Dllの読み込み場所を移動する

フォルダ構成

今回,Dllの置き場所は,exeの作られるフォルダの直下の「dll」フォルダにまとめることにする。

f:id:mogmo811:20181010131006p:plain

Dllの読み込み場所をApp.configで指定

assemblyBindingタグ内にprobingタグを指定すればよい。
このconfigファイルの中身を見てアプリはdllフォルダ内のdllを読みに行く。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
    </startup>
  
    <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <probing privatePath="dll"/>
      </assemblyBinding>
    </runtime>

</configuration>

dllフォルダに.dllファイルを移動させる

ビルド後のイベントを使用して,dllファイルを移動させるバッチを作成する。

if not exist "$(TargetDir)dll" mkdir "$(TargetDir)dll"
copy "$(TargetDir)" "$(TargetDir)dll"

cd "$(TargetDir)dll"
del *.exe
del *.config

cd "$(TargetDir)"
del *.dll
del *.xml
del /s *.pdb