C# 如何关闭/重新启动我的UWP应用程序?

C# 如何关闭/重新启动我的UWP应用程序?,c#,uwp,restart,shutdown,windows-iot-core-10,C#,Uwp,Restart,Shutdown,Windows Iot Core 10,我正在为RaspberryPi开发一个带有Windows IoT core 17763的程序。我的IDE是VisualStudio2019。我的程序使用C#和UWP 重启和关机不起作用。 对于这些功能,应用程序有3个按钮 按钮退出:终止应用程序并启动物联网核心应用程序 按钮重新启动:系统完全重新启动 按钮关闭:完全关闭系统 我的应用程序表现如何 调试时:所有3个按钮仅终止应用程序,调试结束 当应用程序处于自动启动状态时:所有3个按钮都会重新启动应用程序。无需关机,无需重新启动系统,无需IoT

我正在为RaspberryPi开发一个带有Windows IoT core 17763的程序。我的IDE是VisualStudio2019。我的程序使用C#和UWP

重启和关机不起作用。 对于这些功能,应用程序有3个按钮

  • 按钮退出:终止应用程序并启动物联网核心应用程序
  • 按钮重新启动:系统完全重新启动
  • 按钮关闭:完全关闭系统
我的应用程序表现如何

  • 调试时:所有3个按钮仅终止应用程序,调试结束
  • 当应用程序处于自动启动状态时:所有3个按钮都会重新启动应用程序。无需关机,无需重新启动系统,无需IoT核心应用程序
  • 这里是我申请的相关代码

    using Windows.UI.Xaml;
    using Windows.UI.Xaml.Controls;
    using System;
    using Windows.System;
    
    public sealed partial class MainPage : Page
    {
    
        public MainPage()
        {
            InitializeComponent();
        }
    
        //button to exit application
        private void FlyoutExit_Click(object sender, RoutedEventArgs e)
        {
            Application.Current.Exit();
        }
    
        //button to restart system
        private void FlyoutReboot_Click(object sender, RoutedEventArgs e)
        {
            ShutdownManager.BeginShutdown(ShutdownKind.Restart, TimeSpan.FromSeconds(0));
        }
    
        //button to shutdown system
        private void FlyoutShutdown_Click(object sender, RoutedEventArgs e)
        {
            ShutdownManager.BeginShutdown(ShutdownKind.Shutdown, TimeSpan.FromSeconds(0));
        }
    
    }
    
    这是Package.appxmanifest

    <Package
    xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
    xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
    xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
    xmlns:iot="http://schemas.microsoft.com/appx/manifest/iot/windows10"
    IgnorableNamespaces="uap mp iot">
    <Capabilities>
    <iot:Capability Name="systemManagement"/>
    <Capability Name="internetClient" />
    <iot:Capability Name="lowLevelDevices"/>
    <DeviceCapability Name="serialcommunication">
      <Device Id="any">
        <Function Type="name:serialPort" />
      </Device>
    </DeviceCapability>
    </Capabilities>
    </Package>
    
    
    
  • 当应用程序以调试模式退出时,visual studio将断开远程调试。这种行为是正确的。应用程序退出后,将启动配置为启动的Windows IoT Core

  • 关机管理器需要使用物联网系统管理功能。您需要将以下内容添加到Package.appmanifest,否则,应用程序将退出并出现异常


  • 调试时的行为对我来说很清楚。但当应用程序未处于调试状态时。我将我的Package.appxmanifest添加到主帖子中。我没有任何例外。应用程序刚刚重新启动。@Tonic忠诚度,当应用程序处于调试模式时,关机/重新启动是否正常工作?ShutdownManager对我来说很好,即使应用程序是否处于调试模式。如果可能,请共享您的项目好吗?即使在调试模式下也不例外。在调试中,应用程序将关闭并返回到IoT核心应用程序。我如何分享这个项目?StackOverflow是否支持此功能,还是需要从外部上传?我发现了我的错误。我从退出按钮复制了重新启动和关机按钮。所以我忘了更改XAML中的Click=“Exit\u Click”。所有3个都有相同的点击。因此,无论我单击什么,当前的.Exit()总是被选中。我现在唯一的问题是,如何退出应用程序并启动物联网核心应用程序。有什么想法吗?