왜 C#지 않는 C++스타일은 정적 라이브러리?[마감]
-
11-09-2019 - |
문제
최근에는 일에는 몇 가지 작은.NET 응용 프로그램을 공유하는 몇 가지 일반적인 코드.코드는 몇 가지 인터페이스를 소개하는 추상적이다 I/O 통화에 대한 단위 테스트입니다.
내가 원하는 응용 프로그램의 독립 비용 없이 외부 종속성입니다.이처럼 보인다 완벽한 사용 사례에 대한 정적 라이브러리입니다.그것을 생각하는 타사 컨트롤 업체에서 혜택을 수 있는 이 모델은 너무입니다.
관심 있게 보고 있는 숨겨진 총 정적 라이브러리는 나가?
어떤 이유 C#디자이너는 그들을까?
편집:내가 알고 있 ILMerge 그러나 제공하지 않은 동일한 시설로 정적 라이브러리입니다.
다른 팁
이와 직접 관련이 없 C#지만,전체에 더해지는 것입니다.NET 니다.확인이 가능합 병합 사용하여 어셈블리 ILMerge, 지만,슬프게도 그것은 여전히 연구 프로젝트,하지만 적어도 그 라이센스 사용 허가 상업적 노력합니다.다른 것보다는,런타임(CLR)할 수 없는 병으로 단일 실행,대상 플랫폼에도 여전히 필요합니다.NET 을 설치할 수 있습니다.
편집:
내가 이것을 입력하기 전에 당신은 편집인이 포 ILMerge.내가 잘못 될 수도 있지만 있지 않은 추가적인 혜택을 피하고.NET 스타일의 동적 연결을 수 있습니다.거기에 아무 잘못을 넣어 위성 어셈블리와 함께 성능을 크게 향상시킵니다.Microsoft 지 않습니다 그들에 GAC.
정적 LIBS를 사용하면 런타임 제공 업체 (MS)가 패치 할 수 없다는 단점이 있습니다.
예를 들어 정적 MFC LIBS를 사용하고 SECURIFY 문제 또는 기타 버그가 MFC 정적 LIBS에서 발견되는 경우 MS는 패치 할 수 없습니다 (코드는 이미 실행 파일에 있습니다). 공유 DLL을 사용하면 IT를 돌보지 않고 OS 레벨에서 쉽게 패치 할 수 있습니다.
물론 공유 Libs는 작은 단점이 있습니다. 종속성이 취해지고 시스템에 설치해야합니다.