[visual-studio-2008] Visual Studio : 상대 어셈블리 참조 경로

솔루션 디렉토리에있는 어셈블리에 대한 참조를 추가 할 때 상대적으로 추가 할 수있는 방법이 있습니까? 그러면 저장소에서 체크인 및 체크 아웃 할 때 프로젝트에서 올바르게 참조됩니다.



답변

Pavel Minaev의 원래 주석을 확장하려면-Visual Studio 용 GUI는 .sln이 상대 참조의 루트라는 가정하에 상대 참조를 지원합니다. 따라서 솔루션이있는 경우 C:\myProj\myProj.sln하위 폴더에 추가하는 모든 참조 C:\myProj\는 자동으로 상대 참조로 추가됩니다.

와 같은 별도의 디렉토리에 상대 참조를 추가하려면 C:/myReferences/myDLL.dll다음을 수행하십시오.

  1. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 참조 추가 …를 선택하여 Visual Studio GUI에서 참조를 추가합니다 .
  2. 이 참조가있는 * .csproj를 찾아 텍스트 편집기에서 엽니 다.
  3. <HintPath>를 다음과 같도록 편집하십시오.

    <HintPath>..\..\myReferences\myDLL.dll</HintPath>

이것은 이제 C:\myReferences\myDLL.dll.

도움이 되었기를 바랍니다.


답변

예, lib /와 같은 솔루션에 디렉토리를 만든 다음 파일 시스템의 해당 디렉토리에 dll을 추가하고 프로젝트에 추가하십시오 (추가-> 기존 항목-> 등). 그런 다음 프로젝트를 기반으로 참조를 추가하십시오.

나는 svn과 cvs에서 이것을 여러 번 수행했습니다.


답변

VS 2017에서는 자동입니다. 그래서 Add Reference평소처럼.

참고 Reference Properties 절대 경로 나타내지 만에 .vbproj/.csproj대하여 사용된다.

<Reference Include="NETnetworkmanager">
      <HintPath>..\..\libs\NETnetworkmanager.dll</HintPath>
      <EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>


답변

아마도이를 달성하는 가장 쉬운 방법은 어셈블리에 참조를 추가 한 다음 해당 Visual Studio 프로젝트 파일 (확장자 .csproj)에서 참조의 텍스트 표현을 (수동으로) 패치하여 상대가되도록하는 것입니다.

나는 문제없이 VS 2005에서 이것을 많이했습니다.


답변

여기에 있지 않을 수도 있지만 대답은 분명한 것 같습니다. 프로젝트 속성에서 참조 경로를 살펴보십시오. 설정에서 공통 저장소 폴더를 참조 경로 GUI 창에 추가했습니다.

VS20xx의 참조 경로

이렇게하면 내 dll (게시 준비)을이 폴더에 복사 할 수 있으며 이제 모든 개발자는이 폴더에서 빌드 할 때마다 업데이트 된 DLL을받습니다.

솔루션에 dll이있는 경우 빌더는 게시 된 팀 버전보다 로컬 버전의 우선 순위를 지정해야합니다.


답변

앞서 언급했듯이 프로젝트의 .csproj 적용하기 위해 파일을 있습니다.

또한 Visual Studio 2013이 참조 힌트 경로에 상대 경로를 적용하려고 시도하는 것도 발견했습니다. 아마도 프로젝트 파일을 더 이식 가능하게 만들려는 시도 때문일 것입니다.


답변