我试图找出的是,我需要在我的UWP项目上手动设置什么配置来授予它完全信任。
如果您需要一些背景,我需要创建一个企业工具,必须是UWP。该应用程序将在我们公司运行,其中一个使UX更好的功能是能够访问UWP允许之外的文件系统的某些部分,最好不要召唤对话框。能够运行其他DLL也会带来极大的优势;或许这次需要DLL Hell。
@Anzurio - 刚刚看到你的问题,想分享我们构建新Windows Terminal的经验。
我们最初试图创建一个UWP应用程序,具有漂亮的现代XAML UI,但很快发现UWP应用程序平台无法支持我们的一些关键要求: 1. 终端必须能够以提升的方式启动 2. 终端必须能够启动并连接到任意可执行文件(例如cmd、powershell、wsl等)
由于这些限制,我们不得不将终端创建为标准Win32进程,其中包含一个XAML Island,该岛在主窗口框架中托管终端的选项卡栏和终端XAML控件实例。
我们已经尽可能地将应用程序生命周期/逻辑代码从Win32主机中移出,这样如果/当应用程序平台支持我们的要求并且我们可以发布真正的UWP终端应用程序时,我们就会少做更少的工作。
我们正在与应用程序平台团队合作,以找出如何在未来更清洁地构建/全信任现代应用程序。
与此同时,我希望这个回答有所帮助,并希望终端源代码能给你一些灵感,以便如何打造你自己的应用程序。
我不知道有这样的选项。是的,DAC可以包含完全受信任的Win32应用程序,但仅适用于Win32。UWP-WinRT应用程序受到应用程序容器的限制。
替代选项是使用"特殊功能"。
有许多声明可以克服沙箱的限制。其中一些不适用于商店提交 - 仅适用于内部部署应用程序。其他需要注册才能由Microsoft与商店一起部署。如果您的需求匹配,可以使用它。
(添加 - 2017年6月) 从Win10 AU开始,我们可以使用"FullTrustLauncher" API从UWP应用程序启动Win32组件。但是,是的,并不意味着我们可以以完全信任的权限运行"UWP" - WinRT进程。它仅适用于Win32进程。Win32应用程序可执行文件应包含在应用程序的AppX包中,并且清单应将可执行文件声明为"windows.fullTrustProcess"。
<Extensions>
<desktop:Extension Category="windows.fullTrustProcess" Executable="fulltrustprocess.exe">
<desktop:FullTrustProcess>
<desktop:ParameterGroup GroupId="SyncGroup" Parameters="/Sync"/>
<desktop:ParameterGroup GroupId="OtherGroup" Parameters="/Other"/>
</desktop:FullTrustProcess>
</desktop:Extension>
</Extensions>
<rescap>
似乎只能在我想要使用<desktop:Extension Category="windows.fullTrustProcess" Executable="Win32Process_CPP.exe" />
来调用完整的进程时才起作用。 - Anzurio