Share via


어셈블리별 라이브러리 모드

이 옵션을 설정하면 특정 입력 어셈블리가 라이브러리를 구성합니다. Dotfuscator를 통한 난독 처리를 위해 라이브러리는 현재 실행에 입력으로 지정되지 않은 다른 구성 요소에서 참조할 어셈블리로 정의됩니다. 따라서 사용자 지정 제외의 설정과 상관없이 이름 바꾸기 및 잘라내기가 필요합니다.

Dotfuscator Community Edition에서는 라이브러리 옵션이 모든 입력 어셈블리에 적용됩니다. 한 입력 어셈블리가 라이브러리로 표시되면 모든 입력 어셈블리가 라이브러리로 간주됩니다.

다음은 라이브러리 옵션 사용 규칙입니다.

  1. 공용 클래스와 중첩된 공용 클래스의 이름은 바뀌지 않습니다. 이러한 클래스의 멤버인 필드와 메서드에 공용, 패밀리 또는 famorassem 액세스 권한이 있으면 해당 멤버의 이름이 바뀌지 않습니다.
  2. 또한 액세스 지정자에 관계없이 가상 메서드의 이름은 바뀌지 않습니다. 따라서 라이브러리의 클라이언트는 필요에 따라 개인 가상 메서드를 재정의할 수 있습니다. 이것은 .NET 아키텍처에서 허용되는 동작입니다.
  3. 위의 규칙에서 의미하는 제외뿐 아니라 사용자가 지정한 사용자 지정 이름 바꾸기 제외도 적용됩니다.
  4. 속성 및 이벤트 메타데이터는 항상 유지됩니다.

라이브러리 옵션을 어셈블리에 대해 설정하지 않으면 입력 어셈블리가 독립 실행형 응용 프로그램이거나 다른 입력 어셈블리에서 참조되기만 하는 것으로 간주됩니다. 이러한 경우 난독 처리는 훨씬 강력하게 진행됩니다.

  1. 응용 프로그램 외부의 클래스, 즉 실행에 포함되지 않는 어셈블리의 클래스를 재정의하는 메서드를 제외하고 모든 요소의 이름이 바뀝니다.
  2. 속성 및 이벤트 메타데이터는 응용 프로그램을 실행하는 데 필요하지 않으므로 제거됩니다(라이브러리 코드의 밹onsumers뵺?의미함).
  3. 일반적으로 사용자가 지정한 사용자 지정 이름 바꾸기 제외도 적용됩니다.

입력 어셈블리에 대한 라이브러리 모드를 지정하려면 <option> 요소를 해당 <inputassembly> 요소에 추가합니다.

      <inputassembly>
        <option>library</option>
        <file dir="c:\temp" name="myproj.dll"/> 
      </inputassembly>

© 2002-2007 PreEmptive Solutions. All rights reserved.