如何正确设置 AppExecutionAlias 以便程序可以从命令行启动?

How to properly set AppExecutionAlias so the program could be launched from command line?

此 WPF 应用程序的 Package.appxmanifest 已经设置

<uap5:Extension Category="windows.appExecutionAlias" Executable="PROGRAMNAME.exe"
    EntryPoint="Windows.FullTrustApplication">
          <uap5:AppExecutionAlias>
            <uap5:ExecutionAlias Alias="PROGRAMNAME.exe" />
          </uap5:AppExecutionAlias>
        </uap5:Extension>

但是当我尝试从命令行 运行 PROGRAMNAME 时出现错误消息

"The system cannot find the file ....WindowsApps..."

我可以转到那个 WindowsApps 目录,即使我看到那个文件,运行它也给我同样的错误。

我也试过了

<uap3:Extension
    Category="windows.appExecutionAlias"
    Executable="$targetnametoken$.exe"
    EntryPoint="Windows.FullTrustApplication">
          <uap3:AppExecutionAlias>
            <desktop:ExecutionAlias Alias="PROGRAMNAME.exe" />
          </uap3:AppExecutionAlias>
        </uap3:Extension>

这里有几件事需要注意和解决:
1. 'Executable' 需要有实际的可执行路径。通常 EXE 位于 VS 打包项目创建的子文件夹中
2. 不幸的是,$targetnametoken$ 替换在扩展中不起作用。所以你必须把实际的文件夹和文件名放在这里
3. 'Alias' 属性 可以包含您要用于启动应用程序的任何名称,它可以是实际的可执行文件名称,或者您选择的别名

  <uap3:Extension
      Category="windows.appExecutionAlias"
      Executable="WpfApp4\WpfApp4.exe"
      EntryPoint="Windows.FullTrustApplication">
    <uap3:AppExecutionAlias>
      <desktop:ExecutionAlias Alias="foo.exe" />
    </uap3:AppExecutionAlias>
  </uap3:Extension>  

在这里分享我的工作测试项目:
https://1drv.ms/u/s!AovTwKUMywTNv7oKzN9nznoZmK6XSw