2014-04-16 3 views
0

유닛 테스트가 있습니다. csproj에 이런 식으로 경로를 쓰기 파일 :tfs에서 경로 충돌 문제를 해결하는 방법

<Reference Include="DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> 
    <SpecificVersion>False</SpecificVersion> 
    <HintPath>..\..\Dependency\DocumentFormat.OpenXml.dll</HintPath> 
</Reference> 

을하지만 TFS에 프로젝트를 빌드 할 때, 후에 내가 경고 참조 컴파일 :

C : \ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319을 \ Microsoft.Common.targets (1605) :이 참조를 확인할 수 없습니다. 어셈블리 "DocumentFormat.OpenXml"을 찾을 수 없습니다. 어셈블리가 디스크에 있는지 확인하십시오. 이 참조가 코드에서 필요하면 컴파일 오류가 발생할 수 있습니다.

이 경로 (.... \ 종속성 \ DocumentFormat.OpenXml.dll)가 존재하지 않기 때문에

. 현재 디렉토리는/bin입니다. 그러면이 경고를 어떻게 해결할 수 있습니까?

답변

1

..\..\Dependency\DocumentFormat.OpenXml.dll 파일이 TFS에 체크인되지 않은 것 같습니다. 솔루션의 해당 위치에서 확인하고 .csproj 파일의 참조를 업데이트하십시오.

+0

이 파일은 TFS에 체크인됩니다. 그러나 프로젝트를 빌드 할 때 현재 디렉토리는 현재 디렉토리와 다를 때 Visual Studio에서 빌드하십시오. – user3231442

+0

그런 경우 bin 폴더가 아닌 솔루션 루트의 폴더에 종속성을 넣으십시오. TFS는 Visual Studio와는 다른 출력 구조를 가지고 있습니다. –

0

라이브러리 * .dll은 프로젝트 실행 파일이있는 위치를 복사합니다.

+0

알 잖아. 현재 디렉토리에 존재하는 라이브러리입니다. 그러나 어쨌든 경고를 던지십시오. – user3231442

1

Nuget 패키지를 통해 DocumentFormat.OpenXml.dll을 추가 한이 문제가 발생했습니다. 패키지가 만든 참조를 살펴보면 설치된 dll을 참조하는 대신 C:\Program Files (x86)\Open XML SDK\V2.5의 복사본을 참조하는 것으로 나타났습니다.

처음에 DLL 사본을 솔루션에 직접 추가하고 참조를 변경하여 TFS에서 빌드하기 시작한 후 패키지 관리자 콘솔에서 Update-Package -reinstall DocumentFormat.OpenXml을 사용하여 패키지를 수동으로 다시 설치하면 올바른 참조 경로가있는 참조가 다시 생성되었습니다. 패키지 폴더의 복사본과 오류가 발생하지 않았습니다.

관련 문제