2010-07-14 4 views
0

나는 서로에 대한 다양한 의존성을 가진 여러 프로젝트로 구성된 솔루션을 가지고있다. 프로젝트/솔루션을 빌드하면 DLL 어셈블리 파일이 Project \ bin 폴더에 생성됩니다. 하지만 임시 파일 폴더에, 그것을 복사 모든 프로그램을 실행하고 거기에서 그것을 실행할 때 :Visual Studio에서 bin에서 어셈블리 파일 (종속성)을 어떻게 실행하게합니까?

C :

\ WINDOWS \ Microsoft.NET 프레임 워크 \ \ V2.0.50727 임시 ASP.NET \ 파일 \ ApplicationName을

이제는 bin 폴더와 실행중인 임시 파일 폴더에있는 각 프로젝트에 대해 동일한 DLL 파일이 있습니다. 문제는 필자가 bin 디렉토리에 대한 참조를 두 곳에서 프로젝트에 하드 코딩했기 때문에 거기에 보이면 DLL 믹스와 오류가 다시 발생한다는 것입니다. 원본 파일을 복사하여 임시 파일에서 실행하는 대신 원본 bin 디렉터리에서 어셈블리 파일을 실행하도록 Visual Studio를 어떻게 얻을 수 있습니까?

P. 제발 hardcoding을 바꾸라고 말하지 마십시오 - 그것이 그대로 있어야하는 이유가 있습니다; 그게 내가 빈에서 달리는 방법을 알아 내려는 이유야.

감사합니다.

답변

2

이것은 그림자 복사로 알려져 있으며 디자인 기능입니다. 특히 ASP.NET 사이트의 경우 응용 프로그램 도메인을 언로드하지 않고도 도메인 어셈블리를 업데이트 할 수 있습니다. 이는 지속적으로 실행되도록 설계된 ASP.NET 사이트에서 중요합니다. 나는 그것을 그대로두고, \ bin 디렉토리 사용에 대한 요구 사항을 재평가하는 것이 좋습니다.

당신이 정말로 그림자 복사를 사용하지 않으려면, 당신의 web.config 파일에 다음을 추가 :

<hostingEnvironment shadowCopyBinAssemblies="false" /> 

위를하고의 부작용, 당신의 \ bin 디렉토리에 어셈블리가 될 것입니다 응용 프로그램의 수명 동안 잠겨 있습니다.

관련 문제