Dela via


INF AddSoftware-direktiv

Varje AddSoftware-direktiv beskriver installationen av fristående programvara. Det här direktivet bör användas i en INF-fil i installationsklassen SoftwareComponent. Mer information om programvarukomponenter finns i Using a Component INF File. Det här direktivet stöds för Windows 10 version 1703 och senare.

Giltiga installationstyper beror på målplattformen. Desktop har till exempel stöd för MSI-installationsprogram och installations-EXE:er.

Anmärkning

Typ 2 stöds i Universella drivrutiner, typ 1 är endast stationär.

När en INF-fil för programvarukomponenten anger AddSoftware, köar systemet programvara som ska installeras efter enhetsinstallationen. Det finns ingen garanti när eller om programvaran kommer att installeras. Om det inte går att installera den refererade programvaran försöker systemet igen när den refererande programvarukomponenten uppdateras.

Ett AddSoftware-direktiv används i en INF-DDInstall. Avsnittet Programvara.

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

Transaktioner

SoftwareName
Anger namnet på den programvara som ska installeras. Det här namnet måste vara unikt för hela systemet, oavsett inf- eller avsnittsnamn. Bearbetningen av ett AddSoftware-direktiv kontrollerar versionen mot tidigare programvara som installerats med samma namn av ett AddSoftware-direktiv från alla drivrutinspaket. Vi rekommenderar att du förinstallerar SoftwareName med leverantörsnamnet, till exempel ContosoControlPanel.

flaggor
Anger en eller flera flaggor (ORed).

0x00000000
Direktivet AddSoftware bearbetas bara en gång.

0x00000001
Direktivet AddSoftware bearbetas en gång för varje komponentenhet som anger AddSoftware med samma unika SoftwareName.

Tänk dig till exempel en konfiguration där tre enheter installeras med samma INF-fil. Programinstallationsprocessen körs bara en gång för flaggor 0x00000000 men tre gånger för flaggor 0x00000001.

software-install-section
Refererar till ett INF-skrivardefinierat avsnitt som innehåller information om hur du installerar programvara.

Anmärkningar

Varje INF-skrivskyddat avsnittsnamn måste vara unikt i INF-filen och måste följa de allmänna reglerna för att definiera avsnittsnamn. Mer information om dessa regler finns i Allmänna syntaxregler för INF-filer.

Ett AddSoftware-direktiv måste referera till ett namngivet programinstallationsavsnitt någon annanstans i INF-filen. Varje sådant avsnitt har följande formulär:

[software-install-section]

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

Anmärkning

Mer information om begränsningar för avsnittsposter och värden finns i SoftwareType-.

Programvara som installeras med AddSoftware måste installeras tyst (eller tyst). Med andra ord kan inget användargränssnitt visas för användaren under installationen.

Programvara som installeras med AddSoftwareinte avinstalleras om den virtuella programvarukomponenten eller dess överordnade enheter avinstalleras. Om din programvara inte är en UWP-app (dvs. du använder AddSoftware med en SoftwareType på 1), kontrollerar du att användarna enkelt kan avinstallera den utan att lämna en spårning i registret. Så här gör du:

  • Om du använder ett MSI-installationsprogram konfigurerar du en Lägg till/ta bort program post i programmets Windows Installer-paket.

  • Om du använder en anpassad EXE som installerar globalt register/filtillstånd (i stället för att komplettera lokala enhetsinställningar) använder du Avinstallera registernyckeln.

Poster och värden för software-install-section

SoftwareType={type-code}
SoftwareType anger typ av programvaruinstallation och är en obligatorisk post.

Värdet 1 anger att den associerade programvaran är en MSI- eller EXE-binärfil. När det här värdet anges krävs även posten SoftwareBinary. Värdet 1 stöds inte i Windows 10 S.

Om SoftwareType är inställt på 1 krävs också SoftwareBinary och SoftwareVersion, men SoftwareArguments och flaggor (i AddSoftware-direktivet) är valfria.

Från och med Windows 10 version 1709 anger värdet 2 att den associerade programvaran är en Microsoft Store-länk. Använd endast värdet 1 för enhetsspecifik programvara som inte har något grafiskt användargränssnitt. Om du har en enhetsspecifik app med grafiska element bör den komma från Microsoft Store och drivrutinen bör referera till den med hjälp av ett SoftwareType- värde på 2.

Om SoftwareType- är inställt på 2 krävs SoftwareID- och flaggor (i direktivet AddSoftware) är valfria. Om SoftwareType är inställt på 2 används inte SoftwareBinary och SoftwareVersion.

Anmärkning

När du använder SoftwareType 2 i AddSoftware-direktivet behöver du inte använda en komponent-INF. Direktivet kan användas i alla INF-program. Ett AddSoftware-direktiv av typ 1 måste dock användas från en komponent-INF.

Använd inte AddSoftware för att distribuera programvara som inte är relaterad till en enhet. Ett OEM-specifikt datorverktygsprogram bör till exempel inte installeras med AddSoftware. Använd i stället något av följande alternativ för att förinstallera en app i en OEM-avbildning av Windows 10:

Information om hur du parkopplar en drivrutin med en UWP-app (Universal Windows Platform) finns i Para ihop en drivrutin med en UWP-app (Universal Windows Platform) och Hardware Support App (HSA): Steps for Driver Developers.

SoftwareBinary={filename}
Anger sökvägen till den körbara filen. Systemet genererar kommandorader som följande:

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

EXE: <SoftwareBinary> [<SoftwareArguments>]

Om du använder den här posten måste du lägga till den körbara filen i DriverStore genom att ange INF CopyFiles-direktivet med värdet DestinationDirs värdet 13.

Anmärkning

Mer information om begränsningar för SoftwareBinary poster och värden finns i SoftwareType.

SoftwareArguments={argument1[, argument2[, ... argumentN]]}
Anger tilläggsspecifika argument som ska läggas till på kommandoraden. Du kan ange kommandoradsargument som systemet helt enkelt skickar till den genererade kommandoraden. Du kan också ange särskilda strängar som kallas körningskontextvariabler. När du anger en körningskontextvariabel konverterar systemet den till ett enhetsspecifikt värde innan det läggs till på den genererade kommandoraden. Du kan blanda och matcha literalsträngsargument med körningskontextvariabler. Sammanhangsvariabler som stöds är:

<<DeviceInstanceID>>

Systemet ersätter strängen ovan med enhetsinstans-ID för programvarukomponenten.

Till exempel:

    [DDInstall.Software]
    AddSoftware=ContosoControlPanel,,Contoso_ControlPanel_Software

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

Exemplet ovan resulterar i en kommandorad som den här:

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

Om SoftwareArguments innehåller flera argument:

    SoftwareArguments=arg1,<<DeviceInstanceID>>,arg2

Ovanstående resulterar i:

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

Anmärkning

Mer information om begränsningar för SoftwareArguments poster och värden finns i SoftwareType.

SoftwareVersion={w.x.y.z}
Anger programvaruversionen. Varje värde får inte överstiga 65535. När systemet stöter på en duplicerad SoftwareName-kontrollerar det SoftwareVersion mot föregående SoftwareVersion. Om den är större kör Windows programvaran.

Anmärkning

Mer information om begränsningar för SoftwareVersion poster och värden finns i SoftwareType.

SoftwareID={x.y.z}
Anger en Microsoft Store-identifierare och identifierartyp. För närvarande stöds endast paketfamiljenamn (PFN). Använd ett PFN för att referera till en UWP-app (Universal Windows Platform) med hjälp av formuläret pfn://<x.y.z>.

Anmärkning

Mer information om begränsningar för SoftwareID poster och värden finns i SoftwareType.

Se även

Använda en inf-komponentfil

INF DDInstall.Software-avsnittet

INF AddComponent-direktiv

Para ihop en drivrutin med en UWP-app (Universal Windows Platform)

Maskinvarusupportapp (HSA): Steg för drivrutinsutvecklare