2012-01-06 4 views
0

필자는 일반 .NET 개발자 라이브러리에서 공개하기를 원하며 최종 사용자 (개발자)에게 제공해야하는 .DLL의 버전을 알고 싶습니다.개발 도구와 함께 제공되는 .NET 라이브러리의 유형과 버전은 무엇입니까?

.DLL은 내가 예측할 수없는 다양한 환경에서 실행될 수 있습니다.

  • 각 버전은 서명되지 않은
  • 하나의 컴파일 된 32 비트 및 하나의 컴파일 된 64 비트
  • 을 체결

    • .NET3.5 모두와 .NET4 컴파일 된 버전 :

      나의 현재 계획은 제공하는 것입니다

    완전히 8 가지 에디션.

    이것이 좋은 전략인가요?

    32 비트 및 64 비트 환경에서 DLL을 실행하는 사용자를 위해 "AnyCPU"컴파일 된 버전을 만들어야합니까?

    나는 자동화 된 빌드/패키징에서 내가 할 수있는 모든 추가 작업에 신경 쓰지 않는다.

    +1

    32/64 비트 빌드를 건너 뛰고 어셈블리가 실행되는 플랫폼을 신경 쓰지 않으면 모든 CPU 빌드를 제공합니다. 모든 CPU는 어셈블리가 32 비트 또는 64 비트 런타임과 관련이 없으며 둘 중 하나에서 사용할 수 있음을 의미합니다. 서명되지 않은/서명 된 버전을 제공 할 때 요점은 무엇입니까? 왜 "서명"하지 않았습니까? 현실적으로 나는 왜 당신이 2를 발송할 수 없는지 보지 못한다. 하나는 CLR v2 용이고 CLR v4 용입니다. – vcsjones

    +0

    응용 프로그램이 실제로 컴파일의 이점을 얻습니까? –

    +0

    다른 버전은 개발자가 64 비트 서명 된 응용 프로그램을 개발하는 경우 DLL에 부호가있는 64 비트 DLL이 필요하다고 가정합니다. 그것의 다소 perf 중요하다 DLL입니다. – Andy

    답변

    1

    .exe 파일과 OS에 따라 프로세스의 '비트 니스'가 응용 프로그램 시작시 결정되므로 라이브러리를 32 비트 또는 64 비트로 빌드 할 필요가 없습니다. 당신이 선택한 것은 중요하지 않습니다. 그러나 라이브러리에 일부 실행 파일이있는 경우 32 비트 빌드가 필요한 이유가있을 수 있습니다. 이는 응용 프로그램이 타사 32 비트 라이브러리 (COM interop 사용)에 의존하는 경우에만 해당됩니다.

    서명/서명되지 않은 딜레마에 대해서는 두 가지를 모두 배송해야하는 이유가 없습니다. 개발자에게 제한을 두려면 서명을 사용하고, 그렇지 않으면 서명을 남겨 두십시오.

    +0

    * 항상 * strong-name, 나중에하는 것은 매우 어렵습니다. 그리고 하나를 갖는 것은 전혀 부담이되지 않습니다. –