Я хочу добавить кнопку обновления в свое приложение, и при нажатии она будет искать USB-накопитель и проверять наличие файла.
packagemanager.UpdatePackageAsync
API может помочь вам сделать это в приложении UWP и обновить себя.
Но вы не можете просто «найти USB-накопитель и проверить наличие файла», как вы можете сделать на рабочем столе с помощью FilePicker, который не поддерживается в Windows IoT Core. Здесь я показываю пример, чтобы указать местоположение и версию файла, а затем обновить его.
Чтобы использовать этот API, вам нужно добавить возможность packageManagement
в Package.appxmanifest следующим образом:
...
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="uap mp rescap">
...
<Capabilities>
<rescap:Capability Name="packageManagement" />
</Capabilities>
Есть пример кода, на который вы можете ссылаться:
MainPage.xaml
<StackPanel VerticalAlignment="Center">
<Button Content="Update" Click="Button_Click"/>
<TextBox Name="NewVersion" PlaceholderText="For example: 1.0.5.0"/>
<TextBox Name="PkgPath" PlaceholderText="For example: D:\AppUpdate"/>
<TextBlock Text="Install result: " Name="Result" />
</StackPanel>
MainPage.xaml.cs
private async void Button_Click(object sender, RoutedEventArgs e)
{
try
{
string versionNum = NewVersion.Text;
string packagePath = PkgPath.Text;
string packageLocation = packagePath + @"\TestAppUpdate_" + versionNum + "_x86_x64_arm_Debug.appxbundle";
PackageManager packagemanager = new PackageManager();
await packagemanager.UpdatePackageAsync(new Uri(packageLocation), null, DeploymentOptions.ForceApplicationShutdown);
}
catch (Exception ex)
{
Result.Text = ex.Message;
}
}
Приложение обновится и автоматически перезапустится до новой версии.
person
Rita Han
schedule
03.12.2018