2017-02-14 4 views
0

좋아, 나는이 표정에 아무런 도움이되지 않았다. VS (Visual Studio)에 솔루션이 있습니다. ProjectA와 ProjectB라는 두 개의 프로젝트가 있습니다..dll이 GAC에서 DEBUG와 Release 사이를 이동하지 않음

ProjectA는 A.dll을 만듭니다. ProjectB는 A.dll을 참조하는 B.EXE을 만듭니다.

DEBUG 모드에서는 예상대로 모든 것이 올바르게 작동합니다. 그러나 릴리스 모드에서는 파일을 설치할 때 파일의 위치로 이동됩니다. A.dll은 GAC에 설치되지 않습니다. A.dllB.EXE과 관련된 것으로 예상되는 곳이 아니기 때문에 exes는 실패합니다. 알맞은. 내가 c:\los\A.dll에 .EXE의를 복사 한 후 빌드 이벤트에서

c:\los\libs\

로 이동됩니다 현재 내가 해제 참조하는 것이 지금 그것을 가리키는 A.dll 다음 다시 참조를 새 위치, 다시 것이 릴리스 버전이 작동합니다. 진짜 솔루션은 많은 프로젝트와 많은 수의 .dll을 가지고있어서, 새로운 .dll을 정기적으로 다시 참조하는 것을 쉽게 잊을 수 있음을 의미합니다.

이 귀찮은 프로세스를 자동화하는 방법이 있습니까?

+1

GAC를 사용하지 않는 이유 –

+0

요구 사항입니다. –

+0

빌드 속성의 구성을 모든 구성 도움말로 변경합니까? 을 사용하는 것이 좋습니다. –

답변

1

나는 .Net의 프로빙 기능을 찾고 있다고 생각합니다. https://msdn.microsoft.com/en-us/library/823z9h8w.aspx

예 :

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

하위 프로브 만이 실행 EXE 실행되는 위치로부터 검색 될 수 있다는 한계가있다 여기에서 참조된다. 그러나 EXE는 C : \ Ios에 있고 DLL은 C : \ Ios \ Libs 하위 폴더에 있습니다. 설명서마다 여러 하위 폴더를 지정할 수 있습니다. 난 그냥 당신의 질문에 일치하는 예제로 "Libs"폴더를 넣어.

+0

지금 살펴보십시오. –

관련 문제