CHashtag

[C#] 배포 exe 경로 dll 폴더 분리하기 (probing) (privatePath) 본문

C#

[C#] 배포 exe 경로 dll 폴더 분리하기 (probing) (privatePath)

HyoSeong 2021. 5. 11. 15:11
반응형

제품을 릴리스하여 출시할 때 exe와 동일한 경로에 수많은 .dll 파일들이 위치해 있는 경우가 많습니다.

이럴 경우 매우 복잡하고 지저분해보일 수 있기 때문에 오늘은 이 .dll 파일들을 폴더로 분리해보려 합니다.

 

 

테스트 구성은 다음과 같습니다.

매우 복잡한 프로젝트를 구성하였습니다.

빌드를 하면 다음과 같이 지저분한 dll들이 보입니다.

으, 매우 지저분 합니다.

이제 이 dll들을 폴더를 나누어 관리해보려 합니다. (참고로 pdb 파일들은 지워도 됩니다.)

app.config에 다음과 같은 코드를 추가해주면 됩니다.

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="Beautiful;Great;"/>
    </assemblyBinding>
  </runtime>
</configuration>

여기서 주의할 점은 privatePath는 exe하위 폴더여야 합니다.

여러 폴더를 지정하고 싶다면 ; 으로 나눠주면 됩니다. (공백이 생겨선 안됩니다.)

 

dll들을 폴더 안에 넣어 깔끔해졌다!

 

사실 app.config를 변경하고 빌드하지 않고 SomeAmazingWPFProgram.exe.config 파일을 수정해 주어도 결과는 같습니다.

SomeAmazingWPFProgram.exe.config 파일에도 app.config와 동일한 내용을 담고 있습니다.

똑같습니다.

 

주의할 점: Release 빌드 할 것.

(Debug모드로 빌드를 하게되면 작동을 하지 않습니다.)

반응형