2012-01-05 8 views
4

Google 솔루션의 일부 테스트에서는 0.94를 사용합니다. 그러나, 처음 컴파일됩니다 때마다, 빌드 서버가 경고의 몇 올릴 것이다 :경고 : 빌드 서버의 Moles dll을 해결할 수 없음

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets (1360): Could not resolve this reference. 
Could not locate the assembly "XXX.Moles, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL". 
Check to make sure the assembly exists on disk. 
If this reference is required by your code, you may get compilation errors. 

나의 이해, 빌드 서버 구축을 시작하기 전에 테스트 프로젝트의 모든 참조를 해결하는 것입니다 및 molesassembly 폴더 아래에 moles dll을 찾을 수없는 경우 (처음으로 비어 있기 때문에) 위와 같은 경고가 생성됩니다.

그러나 msbuild가이 테스트 프로젝트를 빌드하기 시작하면 mole 어셈블리가 생성되어 moleassemblies 폴더에 복사되므로 오류가 발생하지 않습니다.

요약하면 처음으로 빌드가 부분적으로 성공하고 다음에 빌드가 완전히 성공합니다.

빌드 서버에서 경고하지 않으려 고합니다. 빌드 서버에서이 경고를 제거 할 수있는 방법이 있습니까?

답변

3

프로젝트의 루트 폴더에있는 어셈블리 폴더에 모든 타사 어셈블리가 저장되어 있습니다. 모든 프로젝트에서 사용 된 모든 타사 어셈블리는이 위치에서 참조됩니다. 어셈블리 폴더는 TFS에 포함되어 있습니다.

일부 일반 (어셈블리) 폴더 대신 출력 폴더에서 XXX.Moles 어셈블리를 참조하는 것처럼 보입니다. 테스트 프로젝트의 출력 폴더 대신 Assemblies 폴더에서 타사 라이브러리를 사용하도록 참조를 업데이트하십시오.

편집 :

<Reference Condition="Exists('..\molesassemblies\XXX.Moles.dll')" Include="XXX.Moles.dll"> 
    <SpecificVersion>False</SpecificVersion> 
    <HintPath>..\molesassemblies\XXX.Moles.dll</HintPath> 
</Reference> 
+0

내가 geekysteven 빌드 과정에서 생성 된 자동 생성 두더지 어셈블리에 대해 말하기 있다고 생각하지만, 후 : XXX.Moles 어셈블리 참조 태그 예에 존재하는 경우 검사를 추가하려고 ResolveReject 대상은 MSBuild에서 발생하므로 빌드 경고가 발생합니다. –

+0

Nick이 맞습니다. 우리는 dll을 체크인하고 싶지 않습니다. 두더지 어셈블리는 빌드 서버에서 자동으로 생성됩니다. 그래서 빌드 서버가 dll을 처음으로 감지 할 수 없으므로 경고가 표시되지만 오류는 표시되지 않습니다. – geekysteven

+0

내 대답을 – Ludwo