2011-09-01 5 views
9

대부분의 상점과 마찬가지로 다양한 프로젝트에 종사하는 사람들로 구성된 팀이있어 우리의 비즈니스와 관련된 핵심 정보와 기능을 모두 C#으로 액세스해야합니다. 우리는 현재 프로젝트에서 프로젝트로 공통된 클래스를 복사하고 있지만, 모든 사람들이 자신 만의 맛을 내기 시작하고 통합하려고합니다.여러 응용 프로그램에서 공유 라이브러리를 사용하는 가장 좋은 방법은 무엇입니까?

우리는 Tortoise SVN을 사용하고 공통 클래스를 포함하는 별도의 프로젝트를 유지하기로 결정했지만이 공통 코드를 다양한 응용 프로그램에 배포하는 최선의 방법은 확실하지 않습니다. 우리는 사용자가 응용 프로그램에 액세스하는 방법에 대한 모든 것을 지시 할 수있는 내부 IT 상점을 위해 일하므로 우리 제품을 실제 세계에 출시하는 것에 대해 걱정할 필요가 없습니다.

우리의 생각의 일부

이되었습니다

  1. 이 하나의 DLL로 클래스를 컴파일하고에 저장 한 DLL에 클래스를 컴파일하고 전역 어셈블리 캐시 (GAC)
  2. 에로드 중앙에 위치한 공유 드라이브가 다른 모든 프로젝트에서 참조하도록 설정
  3. 클래스를 단일 DLL로 컴파일하여 각 프로젝트에 포함
  4. 프로젝트를 시작할 때 가장 최근 클래스를 가져 오지만 중앙 공유 라이브러리는 없습니다. (이것에 대한 우리의 해석 : http://www.yosefk.com/blog/redundancy-vs-dependencies-which-is-worse.html)
  5. SVN 외부 참조 http://svnbook.red-bean.com/en/1.0/ch07s03.html

나는 이것이 일반적인 문제입니다 알고, 당신이 또는 다른 옵션으로보고 어떤 시간을 보내고 있다면, 당신은 변함없이 각 방법의 함정 (버전을 설명하는 사람을 찾아 회귀 테스트 , "DLL Hell", "The GAC sucks"등). 나는 어떤 사람이 무슨 일을하고 왜 그 일을하는지를 거의 알지 못한다. 선호되는 방법이 있습니까?

+0

'공용 클래스를 복사'한다는 것은 문자 그대로 프로젝트에서 새로운 .cs 파일을 만들고 원하는 클래스의 데이터를 새로운 .cs 파일에 복사하여 붙여 넣는 것을 의미합니까? – docmanhattan

+0

@docmanhattan 나는 .cs 파일을 직접 복사하여 새 프로젝트에 추가 함을 의미합니다. – kscott

답변

2

우리 회사에서도 동일한 문제가 있습니다. 현재 SVN 트렁크로 이동하는 .bat 파일을 사용하고 가장 최근의 .dll 참조를 가져 와서 작업중인 프로젝트의 로컬 References 폴더를 채 웁니다.

그러나 현재이 시스템을 NuGet으로 전환하는 중입니다. 나는 그것이 어떻게 작동하는지 100 % 확실하지는 않지만 조사할만한 가치가있다. 당신이 공유 코드 저장소를 가리킬 수있는 곳으로 설정 한 다음, 플러그인을 사용하여 Visual Studio에서 최신 코드를 얻어야 할 때마다 '업데이트'를 클릭하기 만하면됩니다.

+0

Nuget은 개인적으로 설정할 수 있으므로이 또한 권장합니다. 도서관 업데이트를 쉽게 얻을 수 있습니다. – KallDrexx

관련 문제