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

标签 uwp windows-10 win-universal-app desktop-bridge appxmanifest

此 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>

Screenshot of command line output and dir content

最佳答案

这里需要注意和修复的几件事:
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

关于uwp - 如何正确设置 AppExecutionAlias 以便程序可以从命令行启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55426605/

相关文章:

windows-runtime - 什么相当于 "OnBackKeyPress"

c# - 如何在Windows Phone 10中检测电话挂断

C# Windows 通用 : Unable to add items to DataGrid dynamically

c# - 如何解决这个僵局呢?

visual-studio - 使用 Visual Studio 2015 设置 Qt5

javascript - Polymer-CLI:$polymer build ...无法丑化文件... Bower_components/**/*

c# - 如何使 WebView 控件静音(禁用声音)?

c# - 使用 WebAuthenticationCoreManager 进行 Facebook 身份验证的 url 是什么

c# - 该项目需要一个未安装的平台 SDK(UAP,版本 10586.0)

c# - UWP - 找不到类 PhoneLine