Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
OEMs und MOs dürfen vorinstallierte Apps im Geräteimage ausliefern. Für einige dieser vorinstallierten Apps müssen Aufgaben ohne Benutzerinteraktion ausgeführt werden, häufig schon bevor die Endbenutzer die App zum ersten Mal öffnen. Dies kann z. B. eine Produktumfrage-App oder eine SMS-Serverregistrierung sein. In ähnlicher Weise erfordern einige Apps Wartungsaufgaben, damit sie ohne Benutzerinteraktion ausgeführt werden können, nachdem eine App aktualisiert wurde. Apps für Vorabinstallationen und Updates bieten Mechanismen, mit denen Aufgaben im Hintergrund ausgeführt werden können, bevor eine App installiert oder aktualisiert wurde.
Es gibt zwei Typen von Bereitstellungsaufgaben, die für UAPs verfügbar sind: PreInstallConfigTask und UpdateTask. Beide sind IBackgroundTasks.
Die folgenden allgemeinen Regeln gelten für diese Aufgaben:
- Ihr App-Manifest darf nur eine PreInstallConfigTask und eine UpdateTask enthalten.
- Bereitstellungsaufgaben gelten für jeden Plattformtyp.
- Bereitstellungsaufgaben können ausgeführt werden, nachdem der Bereitstellungsvorgang abgeschlossen und committet wurde.
- Fehlerhafte Bereitstellungsaufgaben werden nicht neu gestartet.
- Fehlerhafte Bereitstellungsaufgaben wirken sich nicht auf die erfolgreiche Bereitstellung der App aus.
- Bereitstellungsaufgaben werden nach einem Neustart nicht neu gestartet.
- Bereitstellungsaufgaben sollten nicht voneinander abhängig sein.
Codebeispiele
UpdateTask-Beispiel
Die Updateaufgabe wird für jeden möglichen Updatepfad unterstützt, z. B.:
- .xap zu .xap
- .xap zu .appx
- .xap zu .appxbundle
- .appx zu .appx
- .appx zu .appxbundle
- .appxbundle zu .appxbundle
Im Folgenden finden Sie ein Beispiel für ein APPX-Manifest:
<Package>
<Extensions>
<Extension Category="windows.activatableClass.inProcessServer">
<InProcessServer>
<Path>App.dll</Path>
<ActivatableClass ActivatableClassId="App.UpdateTask" ThreadingModel="MTA"/>
</InProcessServer>
</Extension>
</Extensions>
<Applications>
<Application>
<Extensions>
<Extension Category="windows.updateTask" EntryPoint="App.UpdateTask">
</Extension>
</Extensions>
</Application>
</Applications>
</Package>
Im Folgenden finden Sie den Beispielcode in C#:
public sealed class UpdateTask : IBackgroundTask
{
public async void Run(IBackgroundTaskInstance taskInstance)
{
CancellationTokenSource cts = new CancellationTokenSource();
var deferral = taskInstance.GetDeferral();
taskInstance.Canceled +=
(sender, reason) =>
{
cts.Cancel();
};
try
{
await MigrateApp(); // Do app migration/update steps.
}
catch (TaskCanceledException x)
{
// do nothing on cancelation.
}
deferral.Complete();
}
}
PreInstallConfigTask-Beispiel
Im Folgenden finden Sie ein Beispiel für ein APPX-Manifest:
<Package>
<Extensions>
<Extension Category="windows.activatableClass.inProcessServer">
<InProcessServer>
<Path>App.dll</Path>
<ActivatableClass ActivatableClassId="App.PreInstallConfigTask" ThreadingModel="MTA"/>
</InProcessServer>
</Extension>
</Extensions>
<Applications>
<Application>
<Extensions>
<Extension Category="windows.preInstalledConfigTask" EntryPoint=" App.PreInstallConfigTask">
</Extension>
</Extensions>
</Application>
</Applications>
</Package>
Im Folgenden finden Sie den Beispielcode in C#:
public sealed class PreInstallConfigTask : IBackgroundTask
{
public async void Run(IBackgroundTaskInstance taskInstance)
{
CancellationTokenSource cts = new CancellationTokenSource();
var deferral = taskInstance.GetDeferral();
taskInstance.Canceled +=
(sender, reason) =>
{
cts.Cancel();
};
try
{
await DownloadContactList(); // Do app migration/update steps.
}
catch (TaskCanceledException x)
{
// do nothing on cancelation.
}
deferral.Complete();
}
}
Vorinstallationsaufgaben für klassische Windows-Apps
Es gibt drei Typen von Bereitstellungsaufgaben für klassische Windows-Apps, die in der nachstehenden Tabelle aufgeführt sind. Wenn Sie Ihre klassische Windows-App unter Windows 10 bereitstellen, funktionieren diese Aufgaben wie erwartet.
| Aufgabe | Beschreibung |
|---|---|
| PREINSTALL _OEM_TASK | Eine vorinstallierte App eines Erst- oder Zweitanbieters kann zur Installationszeit ausgeführt werden, ohne dass die App von den Endbenutzer*innen gestartet werden muss. |
| UPDATE_TASK | Nachdem eine App aktualisiert wurde (auch bei .appx zu .uap), kann eine Wartungsaufgabe ausgeführt werden, um migrationsbezogene Aufgaben auszuführen, die ebenfalls keine Benutzerinteraktion erfordern. |
| CONVERGENCE | Codekonvergenz unter Windows 8.1 und Windows 8.1 Phone. Aktivieren Sie außerdem ein einheitliches APPX-Manifestschema. |