我正在编写一个调用其他可执行文件的UWP Store应用程序,例如OpenSSL和FFmpeg.exe。我成功地将它们包含在WPF应用程序中。但是,使用UWP,如何将它们构建到最终包中以上传到Windows应用商店?
我在想这些解决方案:
有一个更好的方法吗?谢谢。
您必须利用build powershell命令。
转到您的解决方案文件夹,并在该文件夹中创建一个名为“MyExeFolder”的新文件夹,放置您想要的.exe,如FFmpeg.exe
右键单击您的条目Uwp Project并转到Properties,然后转到Build Events
在Post Build事件命令中输入:
xcopy / y / s“$(SolutionDir)MyExeFolder \ FFmpeg.exe”“$(SolutionDir)\ UWP \ bin \ x86 \ $(ConfigurationName)\ AppX \”
如果您也在为x64构建,那么您也可以使用x64添加相同的命令,而不是x86,如果要构建win32项目并在同一解决方案下对其进行分组,则必须定义相应的bin文件夹。
为了从uwp启动win32应用程序,你将不得不使用一个名为runFullTrust的功能,很难列出你必须对应用程序清单进行的所有xml修改以启用这样的功能,但是一旦你搞清楚了,你将会必须将此添加到Extension节点:
<desktop:Extension Category="windows.fullTrustProcess"
Executable="FFmpeg.exe" />
here is more info on how to set up the manifest
一旦你完成了所有这些,你可以从你的uwp应用程序的任何地方启动你的win32部分:
try {
await Windows.ApplicationModel.FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync();
}
catch (Exception Ex)
{
//failed to Launch
}
至于进一步阅读,我建议你访问stefan wicks博客,因为他有大量的样本和关于如何通过使用.Net原生可扩展性来克服uwp限制。