2013-06-22 2 views
3

저는 인터넷을 통해이 문제에 대한 답변을 찾아 보았고 실제로 도움을받을 수있었습니다.'xxx'유형이 참조되지 않은 어셈블리에 정의되어 있습니다.

나는이 오류에 관한 다른 게시물을 이미 살펴 봤으며 그 중 아무도 나를 도왔습니다.

전체 오류이며,

유형 'xxx는'이 참조되지 않은 어셈블리에 정의되어 있습니다. 'xxx, Version = 0.0.0.0, Culture = neutral, PublicKeyToken = null'어셈블리에 대한 참조를 추가해야합니다.

솔루션을 로컬로 잘 빌드 할 수 있지만 빌드 서버에서 빌드를 트리거 할 때 오류가 발생합니다.

  • 보장 모든 프로젝트 참조 (했다 건축가 나와 함께 그것을 검토)
  • 은 'SpecificVersion'속성을 변경 올바른지 : 여기

    내가이 문제를 해결하기 위해 지금까지 한 일이다 true로
  • 은 참조를 제거하고 다시 추가 (VS2012에서와 편집 .csproj 파일 자체) 빌드 서버에 로컬로
  • 내장 솔루션, 그것은
  • ,369 전달
  • 편집는 - 나는 또한 두 개의 서로 다른 빌드 서버에서이 솔루션을 구축하고 아직도 내가이 일을 VS2012과 TFS2012을 사용하고 동일한 오류

를 얻을 수 있습니다 언급해야한다.

정말 고마워요, 고마워요.

* 업데이트 : * 빌드 서버에서 방금 MSBuild를 수행했지만 구성을 "릴리스"로 변경하여 오류의 일부를 재현 할 수있었습니다. 몇 가지 중요한 차이점은 찾고있는 버전이 0.0.0.0 대신 갑자기 1.3.1.15이고 PublicKeyToken이 더 이상 null이 아니라는 것입니다. 아무도 이것이 무슨 뜻인지 알 수 있습니까? 어셈블리의 버전은 0.0.0.0입니다.

+2

플랫폼이 호환되는지 확인 했습니까? (즉, .NET 4.0 어셈블리가 .NET 4.5 어셈블리를 참조하지 않거나 .NET 4 클라이언트 프로파일 어셈블리가 .NET 4 전체 어셈블리를 참조하지 않음) –

+0

예, 모든 것이 .NET 4.0에서 실행 중입니다. – Albert

답변

5

그래서 내 건축가와 몇 시간 더 가면이 문제가 발견되었습니다.우리 개발자는 소스 컨트롤의 여러 폴더에 동일한 dll의 여러 복사본을 저장했습니다. 프로젝트 중 하나가 잘못된 .dll을 참조하고있었습니다.

참조를 수정하고 불필요한 .dll을 제거한 후에 오류가 사라지고 빌드가 마침내 작동합니다! :)

+5

Nuget을 사용하면 훨씬 간단 해집니다. –

0

테스트 서버에서 솔루션 빌드를 시도했다고 언급했습니다. Visual Studio 2012를 사용하여 솔루션을 구축 했습니까? 아니면 실제로 msbuild를 실행 했습니까? "모든 CPU"당신은 실제로을

얻을 수 = 플랫폼 :

MSBuild를 MySolution.sln/P : 구성 = "디버그"/ P

정확한 시험은 다음과 msbuild를 유사한 사용하는 것 정확한 명령은 TFS Build의 빌드 로그를보고 실행 한 빌드 명령을 나열하고 간단하게 실행합니다 (로깅을 위해 TFS Build가 추가하는 TFS Build를 제거해야합니다).

그런 다음 로컬 컴퓨터에서 동일한 명령을 실행하고 통과하는지 확인하십시오.

또 다른 시도는 프로젝트의 모든 어셈블리에 대해 "로컬 복사"를 설정하는 것입니다.

희망이 도움이됩니다.

+0

테스트 서버에서 MSBuild를 사용했으며 "로컬 복사"설정을 선택했는데이 설정은 프로젝트에서 이미 true로 설정되어 있습니다. : – Albert

+0

그래서 빌드 서버에서 msbuild를 사용하여 빌드합니까? 또한 tfs 빌드에 표준 xaml을 사용합니까? 아니면 사용자 정의/수정 된 것입니까? 이제 빌드 구성에 대해 : 빌드 프로세스 매개 변수의 "Clean Workspace"에 대한 설정은 무엇입니까? ? 빌드가 실패하면 "빌드 에이전트 폴더"에있는 모든 소스 코드를 볼 수 있습니까? MSBuild를 실행할 때 컴파일하는 솔루션입니까? – Woland

+0

그래, 빌드 서버에서 msbuild를 사용하여 빌드합니다. 표준 xaml 프로세스 템플릿을 사용하고 있습니다. , 그리고 "Clean Workspace"는 "Outputs"로 설정되어 있지만, "All"로 설정하고 행운을 빌어 빌드를 실행했습니다. 서버의 빌드 폴더를 확인한 결과 모든 msbuild를 실행할 때 소스 코드. – Albert

관련 문제