现在,我需要在我的uwp应用程序中执行.exe文件。我知道一个解决方案是使用fulltrustlauncher,但是我已经多次搜索过这个解决方案,但是我的编程水平看起来太低了,所以我很难理解他们的解释(例如:Running an EXE from C# using UWP
)。那么,您如何为此解决方案提供简单的示例代码?你能分享吗?
谢谢!
答案 0 :(得分:3)
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
答案 1 :(得分:3)
最后,我可以在我的UWP应用程序中启动我的.exe文件。我会像这样一步一步地描述我的解决方法:
1.创建可执行的.exe文件(例如控制台应用程序)
2.将.exe文件复制到UWP Application启动文件夹(例如:Assets文件夹)
3.在UWP App Solution Explorer中,在"参考>下添加对UWP v10.0.14393.0"(或更高版本)的Windows桌面扩展的引用。通用Windows>扩展&#34 ;.
4.在UWP App Solution Explorer中,打开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"
到包标记。然后,添加此扩展名:
<Extensions>
<desktop:Extension Category="windows.fullTrustProcess" Executable="Assets\YourExecutableFileName.exe" />
</Extensions>
应用标记下的。然后,添加以下代码:
<rescap:Capability Name="runFullTrust" />
进入功能标记。这一步意味着:与编译器交谈以了解它在 Assets \ YourExecutableFileName.exe 位置信任您的.exe文件。
5.在UWP应用程序中,只要要启动.exe文件,就需要执行以下代码:
await FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync();
参考:Great answer