从不受信任的安装点部署和测试 WinUI3 应用程序

问题描述 投票:0回答:1

我有一个 MAUI 应用程序,我想在 Windows 上测试它(它在底层使用 WinUI3)。然而,它使用的库具有非常长的路径文件,我无法部署该库(报告的 Github 问题)。我无法再缩短该文件夹,因为它位于更大的项目结构内。

我想过使用 Junction 来缩短它:

New-Item New-Item -ItemType Junction -Path "D:\MyLongProjectPath" -Target "D:\Temp\Proj"

构建成功了,但是部署的时候又遇到了问题:

DEP0700:应用程序注册失败。 [0x80073CF0] 错误 0x800701C0:从位置打开文件:AppxManifest.xml 失败并出现错误:无法遍历路径,因为它包含不受信任的安装点。

如何使联结“受信任”,或允许从不受信任的安装点注册它?

注意:我只需要这样做用于测试,而不是用于生产。

windows filesystems winui-3 windows-11 junction
1个回答
0
投票

您面临的问题与 https://unit42.paloaltonetworks.com/junctions-windows-redirection-trust-mitigation/ .

有关

一种解决方案是让一些系统进程为您创建这个连接点。请注意,仅仅运行提升的应用程序可能还不够。系统进程是指一些能够在系统进程下创建点的内核模式代码。我们最近刚刚在 CBFS Connect 产品中添加了针对此“问题”的类似解决方法(实际上是一种安全措施,但对于我们的客户来说这是一个问题)。

您可以尝试做的测试是使用 CBFS Filter 将前往 D:\Temp\Proj* 的请求动态重定向到 D:\MyLongProjectPath(试用版就足够了)。为此,您可以添加一个重新分析规则来重定向请求。 CBFS Filter 不使用磁盘上的重分析点,只是将 STATUS_REPARSE 返回到文件打开请求。我认为这应该足以防止操作系统由于上述缓解措施而阻止请求。

IIRC,没有此类重新解析的示例,但操作很简单 - 调用 AddReparseRule 和另一个调用来启动操作(不过,您需要安装 CBFS Filter 附带的驱动程序,因为它完成了所有繁重的工作) .

© www.soinside.com 2019 - 2024. All rights reserved.