외부 DLL 파일을 저장할 위치
프로젝트에서는 서드파티 라이브러리를 사용하고 있습니다.Visual Studio의 참조 폴더를 사용하여 포함시킵니다.
하지만 DLL 파일은 어디에 저장해야 합니까?파일 시스템의 경로에서 참조되지만 프로젝트에 포함시킬 수 있으면 좋겠습니다.하지만 어떻게요?
제가 하는 일은 이렇습니다.
- 솔루션 수준에서 lib 폴더 생성
- 모든 서드파티제의 DLL 파일을 다운로드하여 복사하다
- lib 폴더에서 참조
- 모든 DLL 파일을 소스 컨트롤에 넣습니다.Subversion을 사용하고 있으며 수동으로 추가하지만 일회성입니다.
솔루션 폴더를 추가하고 여기에 추가할 수도 있습니다.
업데이트 2012-12-19
위의 답변은 NuGet이 유아기에 있을 때였습니다.FWIW, NuGet 아이템을 가지고 있는 나의 접근법:
- 일반 DLL 파일 종속성(NuGet pkg이 없는 경우)에 대해 위와 같이 수행합니다.
- 솔루션의 「패키지 복원」을 유효하게 합니다.
packages.configneed the to ( )- 패키지 자체를 버전 관리 시스템에 저장하지 마십시오(Git, Mercurial 등에 대해 ignore 설정).
실제로 NuGet을 사용하여 내부 종속성을 관리하고 개인 피드를 제공합니다.
일반적으로 프로젝트의 구조는 다음과 같습니다(적어도).
projectname
- trunk
- src
- lib
- support
- docs
- releases
trunk폴더에는 현재 작업 중인 원본의 복사본이 포함되어 있습니다.또한 내 프로젝트에서 참조하는 모든 서드파티 어셈블리가 들어 있는 디렉토리 'lib'도 있습니다.
(어느쪽이든)
'릴리스' 폴더에는 트렁크의 분기가 포함되어 있습니다.예를 들어 v1이 출시되면 소스 코드와 애플리케이션 버전1을 구축하는 데 필요한 모든 종속성의 복사본을 얻을 수 있도록 트렁크의 브랜치가 취득됩니다.(이것은 버그 수정에 편리합니다.그 브랜치의 버그를 수정하고, 그 수정을 트렁크에 Marge하고, 그 브랜치를 재구축하면, 애플리케이션의 v1이 수정됩니다).
이 모든 것들이 소스 제어에 들어갑니다.(예, 참조된 어셈블리도 마찬가지입니다).이렇게 함으로써 다른 동료도 프로젝트에 임해야 하는 것이 매우 쉬워집니다.소스 제어에서 최신 버전을 가져오면 컴파일 및 구축이 가능한 모든 것을 갖추고 있습니다.
(CruiseControl과 같은 기능을 사용하여 지속적인 통합을 수행하는 경우에도 마찬가지입니다.)
Visual Studio의 dll에 대한 참조 속성 창에 '로컬 복사'라는 속성이 있습니다. 이 속성을 true로 설정하면 로컬 프로젝트의 bin 디렉터리에 복사됩니다.
NuGet (Visual Studio 패키지 매니저)를 봐주세요...
NuGet은 Visual Studio에서 오픈 소스 라이브러리와 도구를 쉽게 설치하고 업데이트할 수 있는 Visual Studio 확장 기능입니다.
다음 NuGet 문서를 읽고 créme de la créme을 입수하십시오.
NuGet을 보세요.Visual Studio 2010을 위한 패키지 관리 확장 기능으로 원하는 대로 설계되었습니다.
트리 외과의 - 의 개발 트리를 만듭니다.NET 프로젝트는 좋은 출발점이 될 수 있으며, 거기서부터 즉흥적으로 할 수 있습니다.
개인적으로는 서드파티 DLL의 소스 컨트롤에 폴더(각 회사, 조직용 폴더 포함)가 있으며 거기서 참조합니다.
이러한 파일은 소스를 다운로드하는 모든 개발자가 사용할 수 있으며 쉽게 업데이트할 수 있습니다.
이 문제에 올바르게 답하려면 환경과 작업 세트를 구분해야 합니다.
환경:
- 솔루션 구축에 필요한 툴과 라이브러리입니다.
- 환경 내의 사물은 합리적으로 일정하게 유지될 것으로 예상된다.
- 일반적으로 환경 내의 것은 버전화되어 있기 때문에 여러 버전을 동시에 사용할 수 있습니다.
- 환경 내의 물건들은 보통 라이선스가 부여됩니다.
- 환경은 소스 제어가 되지 않습니다.
- 좋은 예로 Visual Studio를 들 수 있습니다.
작업 세트:
- 이것은 기본적으로 당신의 소스 코드입니다.
- 이것이 최종 실행 파일에 도달하기 위한 모든 요건입니다.
- 개발 중에 작업 세트가 많이 바뀔 것이라고 예상하셨을 겁니다.
- 작업 세트는 소스 제어 하에 있어야 합니다.
구성 요소가 어떤 범주에 적합한지 결정해야 합니다.
언급URL : https://stackoverflow.com/questions/4277515/where-to-store-external-dll-files
'programing' 카테고리의 다른 글
| init coder a Decoder란 정확히 무엇입니까? (0) | 2023.04.12 |
|---|---|
| 색조 UIButton 이미지 (0) | 2023.04.12 |
| SQL에서 최소 두 개의 값 가져오기 (0) | 2023.04.12 |
| Bash 변수 범위 (0) | 2023.04.12 |
| 포스트그레스 자동 증가 카운터 재설정 (0) | 2023.04.12 |