2016-09-15 4 views
0

저는이 문제에 대해 몇 주 동안 씨름하고 있습니다. 모든 DLL은 제대로 참조되고, 로컬 복사로 설정되어 있으며 로컬 컴퓨터에서 빌드 시스템으로 내 응용 프로그램을 올바르게 빌드 할 수 있습니다. 내 로컬 및 빌드 상자에 Azure SDK 2.9가 설치되어 있지만 스테이징 환경에서 응용 프로그램을 실행하면.NET 어셈블리가 bin 폴더에 복사되지 않음

"파일 또는 어셈블리를로드 할 수 없습니다."Microsoft.Practices.EnterpriseLibrary.Common, Version = 5.0.505.0 , Culture = neutral, PublicKeyToken = 31bf3856ad364e35 '또는 해당 종속성 중 하나입니다. 시스템에서 지정한 파일을 찾을 수 없습니다. "

=== Pre-bind state information === 

LOG : 표시 이름 = Microsoft.Practices.EnterpriseLibrary.Common, 버전 = 5.0.505.0, 문화 = 중립, PublicKeyToken

내가 여기에 우리의 준비 시스템의 융합 로그를 활성화하고,

는 출력 Appbase = 파일 : /// F/sitesroot/3/ LOG : 초기 PrivatePath = F = 31bf3856ad364e35 가 LOG를 (완전 지정) \ sitesroot 3 \ 빈

호출 조립 \ : (알 수 없음).

LOG :이 바인딩은 기본로드 컨텍스트에서 시작됩니다. 로그 : 응용 프로그램 구성 파일 사용 : F : \ sitesroot \ 3 \ web.config 로그 : 호스트 구성 파일 사용 : D : \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet.config 로그 : 컴퓨터 구성 사용 파일은 D : \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ config \ machine.config에 있습니다. LOG : 정책 후 참조 : Microsoft.Practices.EnterpriseLibrary.Common, 버전 = 5.0.505.0, 문화 = 중립, PublicKeyToken = 31bf3856ad364e35 로그 : 새 URL 파일 다운로드 시도 : /// D : /Windows/Microsoft.NET /Framework64/v4.0.30319/Temporary ASP.NET Files/public_ [내 DLL] /80b18788/752a457e/Microsoft.Practices.EnterpriseLibrary.Common.DLL. LOG : 새 URL 파일 다운로드 시도 : /// D : /Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/public_ [내 DLL] /80b18788/752a457e/Microsoft.Practices.EnterpriseLibrary. Common/Microsoft.Practices.EnterpriseLibrary.Common.DLL. LOG : 새 URL 파일 다운로드 시도 : /// F : /sitesroot/3/bin/Microsoft.Practices.EnterpriseLibrary.Common.DLL. LOG : 새 URL 파일 다운로드 시도 : /// F : /sitesroot/3/bin/Microsoft.Practices.EnterpriseLibrary.Common/Microsoft.Practices.EnterpriseLibrary.Common.DLL. LOG : 새 URL 파일 다운로드 시도 : /// D : /Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/public_ [내 DLL] /80b18788/752a457e/Microsoft.Practices.EnterpriseLibrary. Common.EXE. LOG : 새 URL 파일 다운로드 시도 : /// D : /Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/public_ [내 DLL] /80b18788/752a457e/Microsoft.Practices.EnterpriseLibrary. Common/Microsoft.Practices.EnterpriseLibrary.Common.EXE. LOG : 새 URL 파일 다운로드 시도 중 /// F : /sitesroot/3/bin/Microsoft.Practices.EnterpriseLibrary.Common.EXE. LOG : 새 URL 파일 다운로드 시도 : /// F : /sitesroot/3/bin/Microsoft.Practices.EnterpriseLibrary.Common/Microsoft.Practices.EnterpriseLibrary.Common.EXE.

D : /Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET으로 이동하면 DLL이 없으므로이 DLL에 대해 "잘못된"위치가 분명하게 표시됩니다.

저는 VS 2013을 사용하고 있습니다. 어떤 아이디어가 있습니까?

편집 : 내 로컬에서 빌드 할 때 일부 DLL을 해당 폴더로 다시 복사하기 전에 bin 폴더가 지워지고 있음을 확인할 수 있습니다. 이상하게도 성공적으로 복사 된 DLL은 더 이상 내 코드 또는 설정 파일의 아무 곳에서도 참조되지 않습니다.나는 또한 게시물 빌드 스크립트를 가지고 있지만, 나는이 오래된 DLL이 거기에서 참조되지 않는다는 것을 확인했다.

SECOND 편집 :

나는 준비 인스턴스 중 하나에 엔터프라이즈 라이브러리 DLL을 찾았지만 오류가 참조되는 디렉토리에없는. 실제로 Azure 클라우드 서비스 인 두 번째 프로젝트를 참조하는 웹 프로젝트가 있습니다. 따라서 서비스 폴더가 Temporary ASP.NET Files 폴더 아래에 생성되지만 비어 있습니다.

DLL은 여기에 있습니다 :

D : \ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 임시 \ ASP.NET 파일 \ 루트 \ 59a01799 \ 5b6b1a2 \ 조립 \ DL3 \ 11d624d2 \ 4e820e1f_4413d201

여기서 "루트"는 웹 응용 프로그램이라고 가정합니다. 이 오류는이 폴더에 찾고 :

D : /Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET 파일/[내 서비스 클래스 라이브러리]/060e4c2a/e3b3457e/

Microsoft.Practices.EnterpriseLibrary.Common.DLL의 경우 우리는 웹 프로젝트와 참조 된 서비스 클래스 라이브러리 모두를위한 "packages"폴더를 가지고 있는데, 둘 다 필요한 DLL을 모두 포함하고 있습니다. 그래서 나는 아마도 루트 웹 어플리케이션 프로젝트 폴더를 가리켜 DLL을 찾기 위해 서비스 클래스 라이브러리에 설정이되어있을 것이라고 생각합니다. 그게 무엇인지 알 수는 없습니다.

+0

스테이징 환경에서 MS 엔터프라이즈 라이브러리가 누락 된 것처럼 보이지만 설치를 허용합니까? [Microsoft Enterprise Library 5.0] (https://www.microsoft.com/en-us/download/details.aspx?id=15104) – sly

+0

새로 추가 된 Redis SessionStateProvider를 포함하여 모든 나의 참조에 대해이 오류가 발생했습니다. 이 응용 프로그램을로 전환합니다. 그리고 Redis DLL이 설치되는 EL DLL에 의존한다는 것을 믿지 않으므로 Redis 참조로 본 오류가 Staging에없는 EL과 관련이 있다고 생각합니다. – Ben

+0

Check if 이 MSBuild 제한, http://stackoverflow.com/questions/36270073/msbuild-referencedependencyps-does-not-contain-nth- dependencies –

답변

0

웹 프로젝트를 참조하는 서비스 라이브러리의 미리 빌드 스크립트에서 이전 개발자가 파일 복사 프로그램을 작성하여 특정 DLL을 bin 폴더에 수동으로 복사하는 것이 문제였습니다. 빌드 정의와 비올라 아래에있는이 스크립트에이 DLL을 추가 했으므로 작동했습니다.

답장을 보내 주신 모든 분들께 감사드립니다.

관련 문제