我一直在尝试使用桌面桥将 WPF 应用程序包装在 Windows 通用应用程序中。
为了使应用程序的任务栏图标没有电镀,具有透明背景,我按照可以在各种博客和 MSDN 文章/论坛中找到的说明进行操作,例如这个。
我一直在执行的第一个命令是这两个:
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x64\makepri.exe" createconfig /o /cf priconfig.xml /dq en-US
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x64\makepri.exe" new /o /pr . /cf priconfig.xml
这些命令在 WPF 应用程序的输出文件夹中执行,我还在其中放置了一个 AppxManifest.xml 文件,以及它引用的文件和文件夹(例如可执行文件和各种比例和分辨率的资产图像)。
从这一点开始,我得到了两个不同的奇怪错误:
首先,如果 AppManifest.xml 文件包含以下部分:
<Extensions>
<desktop2:Extension Category="windows.firewallRules">
<desktop2:FirewallRules Executable="app\MyWpfApp.exe">
<desktop2:Rule Direction="in" IPProtocol="TCP" Profile="all" />
<desktop2:Rule Direction="in" IPProtocol="UDP" Profile="all" />
</desktop2:FirewallRules>
</desktop2:Extension>
</Extensions>
那么第二个 makepri 命令将导致以下错误消息:
onecoreuap\base\mrt\tools\indexertool\src\tool\parametermanager.cpp(:908): 错误 PRI175: 0x80080204 -
onecoreuap\base\mrt\tools\indexertool\src\tool\parametermanager.cpp(:318): 错误 PRI175: 0x80080204 -
微软 (R) MakePRI 工具
版权所有 (C) 2013 微软。版权所有。
错误 PRI191:0x80080204 - Appx 清单未找到或无效。请确保存在格式正确的清单文件。或使用 /in 开关指定索引名称。
然后,如果我删除该 FirewallRules 部分,一切似乎都运行良好 - 至少在我的机器上。
其次,它并不总是按预期运行:
当我尝试在另一台机器上运行完全相同的文件(使用 AppxManifest.xml 的固定版本)和相同的命令时,我得到了与第一台机器上相同的错误(在删除 FirewallRules 部分之前)。
知道什么可能导致这些问题吗?构建机器之间的哪些可能差异会导致第二个问题?我应该寻找什么?