2012-03-13 2 views
7

필요한 경로를 사용하여 필요한 dll을 저장하는 프로젝트가 있습니다.
내 TFS 서버에서이 파일을 검사 할 때 내 동료가 TFS 서버에서 최신 버전을 가져온 후에 프로젝트 파일의 속성 페이지에서 참조 경로를 볼 수 없습니다.Visual Studio 2010 참조 경로 및 TFS

내가 뭘 잘못 했니?

+0

참조가 '특정 버전 = True'로 설정된 경우이를 '거짓'으로 변경해보십시오. 그러면 다음 솔루션로드시 참조가 올바르게로드되어야합니다. 개발자는 종종 약간 다른 버전의 타사 프레임 워크가 설치되어 있습니다. – Seph

답변

0

참조 경로는 프로젝트 설정이 포함 된 사용자 별 파일 인 * .csproj.user 파일에 보관됩니다. 동료가 소스 컨트롤에서 최신 버전을 얻은 후에 프로젝트를 빌드하려면 프로젝트에 직접 수동으로 참조 경로를 추가해야합니다.

8

조립품 reference paths은 프로젝트 파일의 일부가 아닙니다 입니다. Visual Studio는 사용자 특정 설정 파일 (* .csproj. 사용자 또는 * .vbproj. 사용자)에 저장합니다.이 파일은 shouldn't be added to source control입니다.

당신이 <AssemblySearchPaths> 요소와 프로젝트 파일에 수동으로 추가 할 수 있습니다 share assembly reference paths with the rest of the team하려면 : 이름 BeforeResolveReferences으로 <Target>을 추가

<PropertyGroup> 
    <AssemblySearchPaths> 
     ..\..\MyReferences\; 
    </AssemblySearchPaths> 
</PropertyGroup> 
+0

좋아요! 고맙습니다! – MirlvsMaximvs

0

내가 더 나은 나를 solutin 작업에 대한 발견, 그

<Target Name="BeforeResolveReferences"> 
    <CreateProperty Value="..\CommonLibs\;$(AssemblySearchPaths)"> 
     <Output TaskParameter="Value" PropertyName="AssemblySearchPaths" /> 
    </CreateProperty> 
</Target> 

(가)의 inclu 수 : 어셈블리를 찾기 위해 첫번째 경로로 내 CommonLibs 폴더를 추가하는 "AssemblySearchPaths"속성을 설정 ded 어셈블리는 모두 솔루션 폴더와 동일한 레벨에 "CommonLibs"라는 이름으로 폴더에 있습니다.

새 경로에 참조 된 DLL을가 컴파일러에 의해 발견 될 수 있지만, 일반 System.* 어셈블리는 더 이상 찾을 수 없습니다 : 슬프게도 나를 위해 작동하지 않았다 이전 답변에서 언급 한 <AssemblySearchPaths> 추가

.

Visual Studio 2010에서 프로젝트 파일의 <AssemblySearchPaths>은 더 이상 유효하지 않을 수 있습니다. 편집기에서 경고하므로이 요소가 유효하지 않습니다.