INF AddSoftware 지시문

AddSoftware 지시문은 독립 실행형 소프트웨어의 설치에 대해 설명합니다. 이 지시문은 SoftwareComponent 설정 클래스의 INF 파일에서 사용해야 합니다. 소프트웨어 구성 요소에 대한 자세한 내용은 구성 요소 INF 파일 사용을 참조하세요. 이 지시문은 Windows 10 버전 1703 이상에서 지원됩니다.

유효한 설치 유형은 대상 플랫폼에 따라 달라집니다. 예를 들어 데스크톱은 MSI 설치 관리자 및 설정 EXE를 지원합니다.

참고

유형 2는 유니버설 드라이버에서 지원되며 유형 1은 데스크톱 전용입니다.

소프트웨어 구성 요소 INF 파일이 AddSoftware를 지정하면 시스템은 디바이스 설치 후 설치할 소프트웨어를 큐에 넣습니다. 소프트웨어가 설치되는 시기 또는 시기는 보장되지 않습니다. 참조된 소프트웨어가 설치되지 않으면 참조하는 소프트웨어 구성 요소가 업데이트되면 시스템이 다시 시도합니다.

AddSoftware 지시문은 INF DDInstall 내에서 사용됩니다. 소프트웨어 섹션.

[DDInstall.Software]
AddSoftware=SoftwareName,[flags],software-install-section

항목

SoftwareName
설치할 소프트웨어의 이름을 지정합니다. 이 이름은 INF 또는 섹션 이름에 관계없이 시스템 전체에서 고유해야 합니다. AddSoftware 지시문의 처리는 드라이버 패키지의 AddSoftware 지시문에 의해 동일한 이름으로 설치된 이전 소프트웨어에 대해 버전을 확인합니다. SoftwareName 앞에 공급업체 이름(예 ContosoControlPanel: )을 사용하는 것이 좋습니다.

flags
하나 이상의 (ORed) 플래그를 지정합니다.

0x00000000
AddSoftware 지시문은 한 번만 처리됩니다.

0x00000001
AddSoftware 지시문은 동일한 고유한 SoftwareName을 사용하여 AddSoftware를 지정하는 각 구성 요소 디바이스에 대해 한 번 처리됩니다.

예를 들어 동일한 INF 파일을 사용하여 세 개의 디바이스가 설치되는 구성을 고려해 보세요. 소프트웨어 설치 프로세스는 플래그 0x00000000 대해 한 번만 실행되지만 플래그 0x00000001 대해 세 번 실행됩니다.

software-install-section
소프트웨어 설치에 대한 정보가 포함된 INF-writer 정의 섹션을 참조합니다.

설명

각 INF 작성기에서 만든 섹션 이름은 INF 파일 내에서 고유해야 하며 섹션 이름을 정의하기 위한 일반 규칙을 따라야 합니다. 이러한 규칙에 대한 자세한 내용은 INF 파일에 대한 일반 구문 규칙을 참조하세요.

AddSoftware 지시문은 INF 파일의 다른 곳에서 명명된 software-install-section을 참조해야 합니다. 이러한 각 섹션의 형식은 다음과 같습니다.

[software-install-section]

SoftwareType=type-code
[SoftwareBinary=path-to-binary]
[SoftwareArguments=argument[, argument] …]
[SoftwareVersion=w.x.y.z]
[SoftwareID=pfn://x.y.z]

참고

섹션 항목 및 값의 제약 조건에 대한 자세한 내용은 SoftwareType 을 참조하세요.

AddSoftware를 사용하여 설치된 모든 소프트웨어는 자동으로(또는 조용히) 설치해야 합니다. 즉, 설치하는 동안 사용자에게 사용자 인터페이스를 표시할 수 없습니다.

가상 소프트웨어 구성 요소 디바이스 또는 해당 부모 디바이스가 제거된 경우 AddSoftware 를 사용하여 설치된 모든 소프트웨어는 제거 되지 않습니다 . 소프트웨어가 UWP 앱이 아닌 경우(즉, SoftwareType이 1인 AddSoftware 를 사용하는 경우) 사용자가 레지스트리에 추적을 남기지 않고 쉽게 제거할 수 있는지 확인하세요. 그러려면 다음을 수행합니다.

  • MSI 설치 관리자를 사용하는 경우 애플리케이션의 Windows Installer 패키지에서 프로그램 추가/제거 항목을 설정합니다.

  • 로컬 디바이스 설정을 보완하는 대신 전역 레지스트리/파일 상태를 설치하는 사용자 지정 EXE를 사용하는 경우 레지스트리 키 제거를 사용합니다.

Software-install-section 항목 및 값

SoftwareType={type-code}
SoftwareType 은 소프트웨어 설치 유형을 지정하며 필수 항목입니다.

값이 1이면 연결된 소프트웨어가 MSI 또는 EXE 이진 파일임을 나타냅니다. 이 값을 설정하면 SoftwareBinary 항목도 필요합니다. Windows 10 S에서는 값 1이 지원되지 않습니다.

SoftwareType을 1로 설정하면 SoftwareBinarySoftwareVersion도 필요하지만 SoftwareArguments플래그(AddSoftware 지시문)는 선택 사항입니다.

Windows 10 버전 1709부터 값 2는 연결된 소프트웨어가 Microsoft Store 링크임을 나타냅니다. 그래픽 사용자 인터페이스가 없는 디바이스별 소프트웨어에 대해서만 값 1을 사용합니다. 그래픽 요소가 있는 디바이스별 앱이 있는 경우 Microsoft Store에서 제공되며 드라이버는 SoftwareType 값 2를 사용하여 참조해야 합니다.

SoftwareType을 2로 설정하면 SoftwareID가 필요하며 AddSoftware 지시문의 플래그는 선택 사항입니다. SoftwareType을 2로 설정하면 SoftwareBinarySoftwareVersion이 사용되지 않습니다.

참고

AddSoftware 지시문의 SoftwareType 2를 사용하는 경우 구성 요소 INF를 사용할 필요가 없습니다. 지시문은 모든 INF에서 성공적으로 사용할 수 있습니다. 그러나 Type 1의 AddSoftware 지시문은 구성 요소 INF에서 사용해야 합니다.

AddSoftware를 사용하여 디바이스와 관련이 없는 소프트웨어를 배포하지 마세요. 예를 들어 OEM 관련 PC 유틸리티 프로그램은 AddSoftware와 함께 설치하면 안 됩니다. 대신 다음 옵션 중 하나를 사용하여 Windows 10 OEM 이미지에 앱을 사전 설치합니다.

드라이버를 UWP(유니버설 Windows 플랫폼) 앱과 페어링하는 방법에 대한 자세한 내용은 드라이버와 UWP(유니버설 Windows 플랫폼) 앱HSA(하드웨어 지원 앱) 페어링: 드라이버 개발자를 위한 단계를 참조하세요.

SoftwareBinary={filename}
실행 파일의 경로를 지정합니다. 시스템은 다음과 같은 명령줄을 생성합니다.

MSI: msiexec /i "<SoftwareBinary>" ALLUSERS=1 /quiet /qn /promptrestart [<SoftwareArguments>]

EXE: <SoftwareBinary> [<SoftwareArguments>]

이 항목을 사용하는 경우 DestinationDirs 값이 13인 INF CopyFiles 지시문을 지정하여 DriverStore에 실행 파일을 추가해야 합니다.

참고

SoftwareBinary 항목 및 값의 제약 조건에 대한 자세한 내용은 SoftwareType을 참조하세요.

SoftwareArguments={argument1[, argument2[, ... argumentN]]]}
명령줄에 추가할 확장 관련 인수를 지정합니다. 시스템이 생성된 명령줄로 단순히 전달하는 명령줄 인수를 지정할 수 있습니다. 런타임 컨텍스트 변수라는 특수 문자열을 지정할 수도 있습니다. 런타임 컨텍스트 변수를 지정하면 시스템은 생성된 명령줄에 추가하기 전에 디바이스별 값으로 변환합니다. 리터럴 문자열 인수를 런타임 컨텍스트 변수와 혼합하고 일치시킬 수 있습니다. 지원되는 런타임 컨텍스트 변수는 다음과 같습니다.

<<DeviceInstanceID>>

시스템은 위의 문자열을 소프트웨어 구성 요소의 디바이스 instance ID로 바꿉니다.

예를 들면 다음과 같습니다.

    [DDInstall.Software]
    AddSoftware=ContosoControlPanel,,Contoso_ControlPanel_Software

    [Contoso_ControlPanel_Software]
    SoftwareType=1
    SoftwareBinary=ContosoControlPanel.exe
    SoftwareArguments=<<DeviceInstanceID>>
    SoftwareVersion=1.0.0.0

위의 예제에서는 다음과 같은 명령줄을 생성합니다.

<DriverStorePath>\ContosoControlPanel.exe PCI\VEN_0000&DEV_0001&SUBSYS_00000000&REV_00\0123

SoftwareArguments에 여러 인수가 포함된 경우:

    SoftwareArguments=arg1,<<DeviceInstanceID>>,arg2

위의 결과는 다음과 같습니다.

<DriverStorePath>\ContosoControlPanel.exe arg1 PCI\VEN_0000&DEV_0001&SUBSYS_00000000&REV_00\0123 arg2

참고

SoftwareArguments 항목 및 값의 제약 조건에 대한 자세한 내용은 SoftwareType을 참조하세요.

SoftwareVersion={w.x.y.z}
소프트웨어 버전을 지정합니다. 각 값은 65535를 초과하면 안 됩니다. 시스템에서 중복 SoftwareName이 발견되면 이전 SoftwareVersion에 대해 SoftwareVersion 을 확인 합니다. 더 큰 경우 Windows는 소프트웨어를 실행합니다.

참고

SoftwareVersion 항목 및 값의 제약 조건에 대한 자세한 내용은 SoftwareType을 참조하세요.

SoftwareID={x.y.z}
Microsoft Store 식별자 및 식별자 유형을 지정합니다. 현재 PFN(패키지 패밀리 이름)만 지원됩니다. PFN을 사용하여 형식pfn://<x.y.z>을 사용하여 UWP(유니버설 Windows 플랫폼) 앱을 참조합니다.

참고

SoftwareID 항목 및 값에 대한 제약 조건에 대한 자세한 내용은 SoftwareType을 참조하세요.

참고 항목

구성 요소 INF 파일 사용

INF DDInstall.Software 섹션

INF AddComponent 지시문

UWP(유니버설 Windows 플랫폼) 앱과 드라이버 페어링

HSA(하드웨어 지원 앱): 드라이버 개발자를 위한 단계