目前,我需要在uwp应用程序中执行一个.exe文件。我知道一个解决方案正在使用fulltrustlauncher,但是我已经搜索了很多次此解决方案,但是我的编程水平似乎太低,因此我很难理解他们的解释(例如:Running an EXE from C# using UWP )。那么,您如何为该解决方案提供一个简单的示例代码?可以分享吗?谢谢!
最后,我可以在UWP应用程序中启动我的.exe文件。我将逐步描述我的解决方法:1.创建可执行的.exe文件(例如控制台应用程序)2.将.exe文件复制到UWP应用程序启动文件夹(例如:Assets文件夹)3.在UWP App解决方案资源管理器中,在“参考>通用Windows>扩展”下添加对“ UWP v10.0.14393.0的Windows桌面扩展”的引用。4.在UWP App解决方案资源管理器中,打开Package.appxmanifest xml文件(右键单击Package.appxmanifest文件->查看代码)。添加这些名称空间
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
至Package标签。然后,添加此扩展名:
<Extensions>
<desktop:Extension Category="windows.fullTrustProcess" Executable="Assets\YourExecutableFileName.exe" />
</Extensions>
在Application标签下。然后,添加以下代码:
<rescap:Capability Name="runFullTrust" />
进入您的Capabilities标签。此步骤的意思是:与编译器联系,以了解它应该信任Assets \ YourExecutableFileName.exe位置中的.exe文件。5.在您的UWP应用程序中,每当要启动.exe文件时,都需要执行以下代码:
await FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync();
参考:Great answer
EXE必须包含在appx软件包中,并在appxmanifest中声明。还要确保在appxmanifest中声明了“ runFullTrust”功能。这就是您所需要的。如果这样做没有帮助,请问一个更详细的问题,以便我们了解到底什么对您不起作用。
MSDN文档:https://docs.microsoft.com/en-us/uwp/api/Windows.ApplicationModel.FullTrustProcessLauncher
使用此功能的GitHub示例:
https://github.com/Microsoft/DesktopBridgeToUWP-Samples/tree/master/Samples/AppServiceBridgeSample
https://github.com/Microsoft/DesktopBridgeToUWP-Samples/tree/master/Samples/SQLServer
https://github.com/Microsoft/DesktopBridgeToUWP-Samples/tree/master/Samples/UWP%20Office%20Interop
https://github.com/Microsoft/DesktopBridgeToUWP-Samples/tree/master/Samples/UWP%20Systray
你们是否建议关闭应用程序后如何关闭从UWP启动的受信任的exe?