谢谢您的答复。我试过了,但是当我通过 Visual Studio 运行 UWP 应用程序时,AppX 中缺少 firstApp.exe。因此,我使用两个 xcopy 命令将 5 个文件(firstApp.exe、firstApp.dll、firstApp.pdb、、firstApp.runtimeconfig.dev.json 和 firstApp.runtimeconfig.json)也复制到 AppX 和 dotnetapp 目录中。
xcopy /Y $(ProjectDir)firstApp\bin\$(ConfigurationName)\netcoreapp3.1\firstApp.* $(TargetDir)AppX\
xcopy /Y $(ProjectDir)firstApp\bin\$(ConfigurationName)\netcoreapp3.1\firstApp.* $(TargetDir)\..\..\..\dotnetapp
之后,UWP 应用再次能够启动 firstApp。但是当我生成应用程序包时,我收到以下消息:
- 已复制 5 个文件
- MakeAppx:错误:清单验证错误:第 29 行,第 64 列,原因:为元素“ [local-name()='Applications']/ [local-name()='Application'声明的文件名“firstApp.exe” ]/ [local-name()='Extensions']/ [local-name()='Extension' and not(@Category='windows.backgroundTasks' or @Category='windows.appService')]" 没有存在于包中。
- MakeAppx:错误:清单验证错误:第 29 行,第 64 列,原因:为元素“ [local-name()='Applications']/ [local-name()='Application'声明的文件名“firstApp.exe” ]/ [local-name()='Extensions']/ [local-name()='Extension' 和 @Category='windows.fullTrustProcess']" 包中不存在。
- MakeAppx:错误:包创建失败。
- MakeAppx:错误:0x80080204 - 指定的包格式无效:包清单无效。
在包生成失败后,我查看了 AppX 文件夹并看到它还包含 dotnetapp 目录。所以我将 Executable="firstApp.exe" 更改为 Executable="dotnetapp/firstApp.exe" 并再次尝试,它成功了!
之后我添加了
xcopy /Y $(ProjectDir)OpenMVGPipeline\bin\$(ConfigurationName)\netcoreapp3.1\firstApp.* $(TargetDir)\..\..\..\dotnetapp
到 <PreBuildEvent> 并将两个 <PostBuildEvent> 条目替换为
xcopy /Y $(TargetDir)\..\..\..\dotnetapp $(TargetDir)AppX\
非常感谢您的帮助!