2

우리는 다음과 같은 문제가있어이 누락하여 참조 :TFS 2010 - WebDeployment - 간접 어셈블리

솔루션 구조 : AutofacRegistration 참고 : Repositories.dll

웹 응용 참고 자료 : AutofacRegistration.dll

웹 응용 프로그램에서 AutofacRegistration.dll을 참조하며이 어셈블리는 Repositories.dll을 참조합니다. Repositories.dll은 IOC-Container 당 런타임에 인스턴스화됩니다.

VS2010에서 솔루션을 빌드하고 웹 응용 프로그램을 탐색 할 때 모든 것이 정상적으로 작동합니다.

빌드 서버 (TFS 2010)를 사용하고 웹 배포를 사용하면 Repositories.dll에 web-app \ bin 폴더가 없으므로 런타임 예외가 발생합니다 (리포지토리에서 클래스를 인스턴스화하려는 경우). dll)

그러나 Repositories.dll은 드롭 위치에 있으므로 웹 배포 대상에서이 파일을 복사하지 않으므로 어떤 아이디어를이 문제에서 해결할 수 있습니까 ??

답변

1

웹 개발 프로젝트에서 필요한 파일을 가져올 수있는 BuildTemp 위치에서 복사 작업을 시도 했습니까?

<Copy SourceFiles="$(OutDir)\Repositories.dll" DestinationFiles="web-ap\bin\Repositories.dll" /> 

경로는 수정해야하지만 아이디어를 얻을 수 있습니다. MSBuild에서 설치 프로그램의 dll을 픽업하도록 비슷한 기능을 수행합니다.

+0

안녕하세요, 저는 아이디어를 얻었습니다. 그리고 런타임이 될 때까지 사용되지 않는 모든 새로운 어셈블리를 위해해야하기 때문에 작동하지만, 성가신 일이라고 생각합니다! 다른 아이디어? 사전에! –

+0

네, 앞으로 모든 DLL이 같은 폴더에 있다면 또 다른 아이디어는 와일드 카드를 사용하는 것입니다. 당신은 항상 빌드 작업을 생성 할 수 있으며 빌드 도중 exec 할 수 있고 C#의 sln을 코딩 할 수 있습니다. 동의합니다. 약간의 유지 보수이지만 1 년 동안 비슷한 설정으로 원활하게 실행되었으므로 걱정하지 마십시오. 그것. –

+0

와일드 카드 아이디어는 훌륭합니다. 월요일에 시도해 보겠습니다. tfs 2010에서 어떻게 할 수 있는지 샘플을 보여주는 링크가 있습니까? 그것은 매우 도움이 될 것입니다! 당신의 대답을위한 thx! –