从命令行 cmd 启动 Windows 10 UWP 应用

use*_*015 4 windows string cmd concatenation uwp

我希望能够从单个命令行 (cmd Windows 10) 输入启动 Windows 10 UWP 应用程序。我在将字符串连接在一起以形成整个包名称时遇到问题(这需要是动态的,因为应用程序的结束字符串可以随着每次部署而改变)。这是我的逻辑:

  1. 在LocalAppData目录下找到app包名(即packageName_postfix)
  2. 将“!App”附加到 #1 中的结果末尾
  3. 将该字符串传递给启动函数:

我已经到了可以找到 #1 的地步,但是由于某种原因,当我尝试将它附加到 #2 时,我得到了一个 NULL 值。这是我当前的命令:

1.) & 2.): 获取包名并将其附加到“!App”

set "x=|dir %LocalAppData%\Packages /b | findstr packageName" & set "y=!App" & set "z=%x%%y%" & echo.%z%
Run Code Online (Sandbox Code Playgroud)

3.): 启动 UWP 应用

explorer.exe shell:appsFolder\packageName_postfix!App
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Par*_*ami 6

首先,您必须知道此解决方案仅适用于Windows 10 Fall Creators Update和更新版本。此 API 将支持 Windows Insider Build 16266 或更高版本。

Pacakge.appxmanifest文件中添加这个命名空间:

xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5"  
Run Code Online (Sandbox Code Playgroud)

然后添加这个扩展:

<Extensions>  
    <uap5:Extension   
      Category="windows.appExecutionAlias"   
      Executable="MyApp.exe"   
      EntryPoint="MyApp.App">  
      <uap5:AppExecutionAlias>  
        <uap5:ExecutionAlias Alias="MyApp.exe" />  
      </uap5:AppExecutionAlias>  
    </uap5:Extension>  
  </Extensions>  
Run Code Online (Sandbox Code Playgroud)
  • 可执行文件名称 - Application.Exe 名称(例如:MyApp.exe)
  • EntryPoint - Entrypoint 标记应包含应用程序类的全名(参考:打开 -> App.xaml 文件 -> 应用程序 x:类名)
  • AppExecutionAlias - 在命令提示符中输入别名以打开应用程序;将 app.exe 名称作为别名。

构建应用程序并运行一次!

打开命令提示符,输入别名->回车

您还可以在此处查看参考

  • “构建应用程序”是什么意思?如果我没有应用程序的源代码(并且我没有我使用的任何 UWP 应用程序的源代码)怎么办?我到底应该在这里建造什么? (2认同)
  • @mar:Stack Overflow 是为开发人员准备的。如果您正在寻找针对用户的解决方案,请尝试使用 [superuser](https://superuser.com/)。 (2认同)