<dependency> 요소(ClickOnce 배포)

설치할 애플리케이션의 버전과 애플리케이션 매니페스트의 위치를 식별합니다.

구문


      <dependency>
   <dependentAssembly
      preRequisite
      visible
      dependencyType
      codeBase
      size
   >
      <assemblyIdentity
         name
         version
         publicKeyToken
         processorArchitecture
         language
         type
      />
      <hash>
         <dsig:Transforms>
            <dsig:Transform
                Algorithm
            />
         </dsig:Transforms>
         <dsig:DigestMethod />
         <dsig:DigestValue>
         </dsig:DigestValue>
      </hash>

   </dependentAssembly>
</dependency>

요소 및 특성

dependency 요소가 필요합니다. 특성은 없습니다. 하나의 배포 매니페스트에 여러 dependency 요소가 포함될 수 있습니다.

dependency 요소는 일반적으로 ClickOnce 애플리케이션 내에 포함된 어셈블리에 주 애플리케이션에 대한 종속성을 표현합니다. Main.exe 애플리케이션에서 DotNetAssembly.dll이라는 어셈블리를 사용하는 경우 해당 어셈블리가 종속성 섹션에 나열되어야 합니다. 하지만 종속성은 GAC(전역 어셈블리 캐시) 또는 COM 개체의 어셈블리에 특정 버전의 공용 언어 런타임에 대한 종속성과 같은 다른 유형의 종속성을 표현할 수도 있습니다. 작업이 필요 없는 배포 기술이므로 ClickOnce는 이러한 유형의 종속성 다운로드 및 설치를 시작할 수 없지만 지정된 종속성 중 하나 이상이 없는 경우 애플리케이션이 실행되지 않도록 합니다.

dependentAssembly

필수입니다. 이 요소에는 assemblyIdentity 요소가 포함되어 있습니다. 다음 표는 dependentAssembly에서 지원하는 특성을 보여 줍니다.

attribute 설명
preRequisite 선택 사항입니다. 이 어셈블리가 GAC에 있어야 하도록 지정합니다. 유효한 값은 truefalse입니다. 값이 true이며 지정된 어셈블리가 GAC에 없으면 애플리케이션이 실행되지 않습니다.
visible 선택 사항. 의존성을 포함한 최상위 애플리케이션 ID를 식별합니다. ClickOnce에서 애플리케이션 스토리지 및 활성화를 관리하는 데 내부적으로 사용됩니다.
dependencyType 필수입니다. 이 종속성과 애플리케이션 간의 관계입니다. 유효한 값은 다음과 같습니다.

- install. 구성 요소는 현재 애플리케이션과 구별되는 별도의 설치를 나타냅니다.
- preRequisite. 구성 요소가 현재 애플리케이션에 필수입니다.
codebase 선택 사항. 애플리케이션 매니페스트의 전체 경로입니다.
size 선택 사항. 애플리케이션 매니페스트의 크기(바이트)입니다.

assemblyIdentity

필수입니다. 이 요소는 dependentAssembly 요소의 자식입니다. assemblyIdentity의 콘텐츠는 ClickOnce 애플리케이션 매니페스트에 설명된 것과 동일해야 합니다. 다음 표는 assemblyIdentity 요소의 특성을 보여 줍니다.

attribute Description
Name 필수입니다. 애플리케이션의 이름을 식별합니다.
Version 필수입니다. 애플리케이션의 버전 번호를 major.minor.build.revision 형식으로 지정합니다.
publicKeyToken 필수입니다. 애플리케이션 또는 어셈블리가 서명된 퍼블릭 키의 SHA-1 해시 마지막 8바이트를 나타내는 16자의 16진수 문자열을 지정합니다. 서명하는 데 사용되는 퍼블릭 키는 2048비트 이상이어야 합니다.
processorArchitecture 필수입니다. 마이크로프로세서를 지정합니다. 유효한 값은 32비트 Windows의 경우 x86이고 64비트 Windows의 경우 IA64입니다.
Language 선택 사항. 두 부분으로 구성된 어셈블리 언어 코드를 식별합니다. 예를 들어 EN-US는 영어(미국)를 나타냅니다. 기본값은 neutral입니다. 이 요소는 asmv2 네임스페이스에 있습니다.
type 선택 사항. 이전 버전 Windows와의 호환성을 위한 병렬 설치 기술입니다. win32 값만 허용됩니다.

hash

hash 요소는 file 요소의 선택적 자식 요소입니다. hash 요소에는 특성이 없습니다.

ClickOnce는 애플리케이션에 있는 모든 파일의 알고리즘 해시를 보안 검사로 사용하여 배포 후 어떤 파일도 변경되지 않았는지 확인합니다. hash 요소가 없으면 이 검사가 수행되지 않습니다. 따라서 hash 요소를 생략하는 것은 권장되지 않습니다.

dsig:Transforms

dsig:Transforms 요소는 hash 요소의 필수 자식 요소입니다. dsig:Transforms 요소에는 특성이 없습니다.

dsig:Transform

dsig:Transform 요소는 dsig:Transforms 요소의 필수 자식 요소입니다. 다음 표는 dsig:Transform 요소의 특성을 보여 줍니다.

attribute 설명
Algorithm 이 파일의 다이제스트를 계산하는 데 사용되는 알고리즘입니다. 현재 ClickOnce에서 사용하는 유일한 값은 urn:schemas-microsoft-com:HashTransforms.Identity입니다.

dsig:DigestMethod

dsig:DigestMethod 요소는 hash 요소의 필수 자식 요소입니다. 다음 표는 dsig:DigestMethod 요소의 특성을 보여 줍니다.

attribute 설명
Algorithm 이 파일의 다이제스트를 계산하는 데 사용되는 알고리즘입니다. 현재 ClickOnce에서 사용하는 유일한 값은 http://www.w3.org/2000/09/xmldsig#sha1입니다.

dsig:DigestValue

dsig:DigestValue 요소는 hash 요소의 필수 자식 요소입니다. dsig:DigestValue 요소에는 특성이 없습니다. 해당 텍스트 값은 지정된 파일에 대해 계산된 해시입니다.

설명

배포 매니페스트에는 일반적으로 애플리케이션 매니페스트의 이름과 버전을 식별하는 단일 assemblyIdentity 요소가 있습니다.

예 1

다음 코드 예제에서는 ClickOnce 배포 매니페스트의 dependency 요소를 보여 줍니다.

<!-- Identify the assembly dependencies -->
<dependency>
  <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MyApplication.exe" size="16384">
    <assemblyIdentity name="MyApplication" version="0.0.0.0" cultural="neutral" processorArchitecture="msil" />
    <hash>
      <dsig:Transforms>
        <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
      </dsig:Transforms>
      <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
       <dsig:DigestValue>YzXYZJAvj9pgAG3y8jXUjC7AtHg=</dsig:DigestValue>
    </hash>
  </dependentAssembly>
</dependency>

예제 2

다음 코드 예제에서는 GAC에 이미 설치된 어셈블리에 대한 종속성을 지정합니다.

<dependency>
  <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
    <assemblyIdentity name="GACAssembly" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
  </dependentAssembly>
</dependency>

예 3

다음 코드 예제에서는 공용 언어 런타임의 특정 버전에 대한 종속성을 지정합니다.

<dependency>
  <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
    <assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="2.0.50215.0" />
  </dependentAssembly>
</dependency>

예시 4

다음 코드 예제에서는 운영 체제 종속성을 지정합니다.

<dependency>
   <dependentOS supportUrl="http://www.microsoft.com" description="Microsoft Windows Operating System">
      <osVersionInfo>
         <os majorVersion="4" minorVersion="10" />
      </osVersionInfo>
   </dependentOS>
</dependency>

참고 항목