Я работаю над приложением UWP Desktop Bridge. Я создал проект упаковки и создал пакет приложения для боковой загрузки. Когда я нажимаю на приложение
Значок один раз, приложение успешно запускается. Но при двойном щелчке значка приложение вылетает.
Я создал проект упаковки по ссылке:
https://docs.microsoft.com/en-us/windows/msix/desktop/desktop-to-uwp-packaging-dot-net
Приложение работает нормально одним нажатием на иконку приложения. Это потому, что при двойном щелчке .exe вызывается дважды, и это является причиной сбоя?
Вот основной метод фонового процесса
private static void Main(string[] args)
{
try
{
connection.AppServiceName = "CommunicationService";
connection.PackageFamilyName = Windows.ApplicationModel.Package.Current.Id.FamilyName;
// hook up the connection event handlers
connection.ServiceClosed += Connection_ServiceClosed;
connection.RequestReceived += Connection_RequestReceived;
AppServiceConnectionStatus result = AppServiceConnectionStatus.Unknown;
// static void Main cannot be async until C# 7.1, so put this on the thread pool
Task.Run(async () =>
{
// open a connection to the UWP AppService
result = await connection.OpenAsync();
}).GetAwaiter().GetResult();
if (result == AppServiceConnectionStatus.Success)
{
while (true)
{
}
}
}
catch (Exception)
{
}
}
Код для звонка:
private async Task StartBackgroundProcess()
{
try
{
// Make sure the BackgroundProcess is in your AppX folder, if not rebuild the solution
await Windows.ApplicationModel.FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync();
}
catch (Exception)
{
MessageDialog dialog = new MessageDialog("Rebuild the solution and make sure the BackgroundProcess is in your AppX folder");
await dialog.ShowAsync();
}
}
Также внутри манифеста пакета:
<desktop:Extension Category="windows.fullTrustProcess" Executable="BackgroundProcess.exe" />
<uap:Extension Category="windows.appService">
<uap:AppService Name="CommunicationService" />
</uap:Extension>
и
<rescap:Capability Name="runFullTrust" />
Можно ли избежать проблемы сбоя?