또 오랜만에 기술 포스팅.
현재 나는 Infragistics라는 Lib를 주로 사용하고있다...
근데 뭐 이런 Lib를 사용하면 항상 걸리는게... 이 Lib가 설치가 되어있으면 상관없는데....설치안되었을때의 문제....
당연히 설치가 안되어있으면... 프로그램이 안돌아간다........
그래서 항상 Visual Studio에서 Local Copy를 true로 설정해준다.....
그래도.. 중간중간 빠지는 DLL은 존재하기 마련......
이것은 그럴때 사용할 수 있는 기능인것이다!!
WPF를 기준으로 설명하자면...
WPF 프로젝트 생성 시 app.config가 생성됨을 확인 할 수 있을 것이다.
해당 app.config에 아래와 같은 코드를 삽입!
<configuration> <runtime> <assemblybinding xmlns="urn:schemas-microsoft-com:asm.v1"> <probing privatepath="Folder1;Folder2\Folder21"> </probing></assemblybinding> </runtime> </configuration>
위 코드를 설명하자면 실행되는 .exe파일의 위치에서 Folder1, Folder2\Folder21 2개의 폴더를 참조하여 dll를 동적 로딩하겠다 라는 것!
위 코드를 넣어두면.. 만약 dll이 빠지더라도 해당 폴더에만 dll이 있으면 문제없이 작동 가능!
가끔 dll이 빠졌을때는 괜찮게 사용할 수 있을 것같다.
하지만..
단점은 존재하는 법!!
난 1개의 폴더에 모든 dll을 넣어두고 해당 폴더를 모든 프로젝트가 참조하도록 하고싶지만..
폴더 설정 시 실행하는 .exe파일의 위치 내에서만 참조가 가능하다......
10개의 .exe가 있다면 10개의 .exe 위치에 다 복사해야하는 것.....
이거는...안되지...........
해당 부분만 찾으면.... 참 좋게 쓸수있을 것 같다.(근데 안된다는 것 같음 ^^......)
ps. 추가 코드
new System.EnterpriseServices.Internal.Publish().GacInstall("aaa.dll");
위와 같은 코드를 이용하여 GAC로 등록해두면 DLL이 필요없게 됨.. 위와같은 방법도 괜차늠!!!!