raspberry pi 从 USB 驱动器更新 uwp 应用程序
update uwp app from usb drive on raspberry pi
我在 visual studio 2017 年创建了一个通用 Windows 应用程序。我已经在我的 raspberry Pi 上部署了这个应用程序,运行 很好。我还使用 2017 创建了一个包。我想在我的应用程序中添加一个更新按钮,当按下它时,它会寻找 USB 记忆棒并检查文件。我看到这个文件,它会更新应用程序,就像它正在寻找商店进行更新一样。本机没有连接到互联网,仅供内部使用。但是,我想确保我可以更新这些或提供一个带有更新的 USB 记忆棒,以便同事可以更新它。
我不知道该怎么做,也不知道是否可行。非常感谢任何帮助。
I want to add an update button to my app and when pressed it would
look for a USB stick and check for a file.
packagemanager.UpdatePackageAsync
API 可以帮助您在 UWP 应用程序中执行此操作并自行更新。
但是您不能简单地 "look for a USB stick and check for a file" 就像在桌面上通过 Windows IoT Core 不支持的 FilePicker 那样。这里我展示了一个示例来指定文件位置和版本然后更新它。
要使用此 API,您需要在 Package.appxmanifest 中添加 packageManagement
功能,如下所示:
...
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;
}
}
应用程序将更新并自动重启到新版本。
我在 visual studio 2017 年创建了一个通用 Windows 应用程序。我已经在我的 raspberry Pi 上部署了这个应用程序,运行 很好。我还使用 2017 创建了一个包。我想在我的应用程序中添加一个更新按钮,当按下它时,它会寻找 USB 记忆棒并检查文件。我看到这个文件,它会更新应用程序,就像它正在寻找商店进行更新一样。本机没有连接到互联网,仅供内部使用。但是,我想确保我可以更新这些或提供一个带有更新的 USB 记忆棒,以便同事可以更新它。
我不知道该怎么做,也不知道是否可行。非常感谢任何帮助。
I want to add an update button to my app and when pressed it would look for a USB stick and check for a file.
packagemanager.UpdatePackageAsync
API 可以帮助您在 UWP 应用程序中执行此操作并自行更新。
但是您不能简单地 "look for a USB stick and check for a file" 就像在桌面上通过 Windows IoT Core 不支持的 FilePicker 那样。这里我展示了一个示例来指定文件位置和版本然后更新它。
要使用此 API,您需要在 Package.appxmanifest 中添加 packageManagement
功能,如下所示:
...
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;
}
}
应用程序将更新并自动重启到新版本。