2010-08-16 4 views
1

일부 라이브러리를 사용하고 있는데 해당 라이브러리 dll에 대한 참조를 추가하고 "로컬 복사"를 true로 설정했습니다.
하지만 DLL의 위치를 ​​exe 폴더가 아닌 exe 폴더의 하위 폴더로 변경하고 싶습니다.
어떻게 가능합니까?
감사참조 DLL이 복사되는 위치를 변경하는 방법은 무엇입니까?

업데이트 : [존 소총이 권장]
내가 다음 빌드 후 이벤트를 사용

move /y $(TargetDir)\System.Data.SqlServerCe.dll $(TargetDir)\Lib\SqlSrvCe\System.Data.SqlServerCe.dll 

답변

2

당신은 당신의 .EXE에 대한 .config 파일이 필요합니다. 하위 디렉토리는 아무런 문제가 없으며 단지 <probing> 요소를 사용합니다. privatePath 속성은 상대 폴더 이름입니다.

그러나 IDE에서 그 지점에 DLL을 배치하는 데 도움이되지 않도록 조심하십시오. 필요한 경우 폴더를 만드는 게시 빌드 이벤트가 필요하며 xcopy는 DLL을 필요로합니다. 이런 식으로 뭔가 : 내가 참조로 필요

if not exist "$(TargetDir)mumble" mkdir "$(TargetDir)mumble" 
xcopy /d /y "$(TargetDir)something.dll" "$(TargetDir)mumble" 
+0

이 링크는 http://stackoverflow.com/questions/806467/how-can-를 작업 할 수있는 프로브 경로의 app.config 안에 넣어 XML을 포함 i-set-privatebinpath-in-mef – Karim

+0

경로에 공백이있어 문제가 발생할 수 있습니다. 따옴표로 둘러 쌉니다. "$ (TargetDir) mumble" – SaphuA

1

나는 그것이 규칙을 구축 "정상"내 가능 여부 모르겠지만, 당신은 할 수 기본적으로 파일을 옮긴 빌드 후 단계를 추가하십시오. 못생긴 것이지만 작동해야합니다.

관련 문제