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

8
这个 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个回答

8

需要注意和修正的几点:
1. '可执行文件'需要填写实际可执行文件路径。通常,EXE位于VS打包项目创建的子文件夹中。
2. $targetnametoken$ 替换在扩展中不起作用。因此,您必须在此处放置实际的文件夹和文件名。
3. '别名'属性可以包含您想要用于启动应用程序的任何名称,它可以是其实际的可执行文件名称或您选择的别名。

  <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


正如您在屏幕截图中所看到的,即使在WinApps\中也有programname.exe。在那里我还看到了属于该程序的目录,其中也有programname.exe,但是将该路径添加到可执行文件中仍然无法工作。即使我进入该目录并尝试运行它,仍会显示相同的错误。我已经尝试添加具有uap3和uap5扩展名的完整路径,但没有成功。如果我拼写程序名称错误,我会得到不同的错误。我还尝试添加实际的exe名称和别名名称。 - m1l0s
我在我的回答中分享了我的工作测试项目。请将其与您的进行比较。如果仍然无法正常工作,请分享显示问题的项目,以便我们可以完整地重现并查看。否则,我们只能进行猜测。 - Stefan Wick MSFT
2
它可以工作,但我必须设置 Executable="PROJNAME\EXENAME.exe"。这是出乎意料的,因为exe直接在bin目录中,而且我没有任何名为PROJNAME(与其命名空间相同)的文件夹。我猜测打包过程创建了该文件夹并将内容移动到那里。 - m1l0s

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接