Uwp 在“开始”菜单快捷方式中添加可执行参数

Uwp 在“开始”菜单快捷方式中添加可执行参数,uwp,desktop-bridge,Uwp,Desktop Bridge,我用gcc-g++编译了一个可执行文件,比如说launcher.exe。我想以launcher.exe--param的形式运行它。因此,我创建了一个包含所有资产、二进制文件等的UWP文件夹。我可以使用makeappx.exe成功地将文件夹打包到APPX包中,并使用signtool.exe将其唱出来。它安装和启动成功。但是我不能在appxmanifest.xml文件中添加--param。清单文件如下所示: 那么,我如何才能在“开始”菜单的快捷方式或桌面快捷方式中添加该命令参数?由于该参数将

我用gcc-g++编译了一个可执行文件,比如说
launcher.exe
。我想以
launcher.exe--param
的形式运行它。因此,我创建了一个包含所有资产、二进制文件等的UWP文件夹。我可以使用
makeappx.exe
成功地将文件夹打包到APPX包中,并使用
signtool.exe
将其唱出来。它安装和启动成功。但是我不能在appxmanifest.xml文件中添加
--param
。清单文件如下所示:



那么,我如何才能在“开始”菜单的快捷方式或桌面快捷方式中添加该命令参数?

由于该参数将在清单中硬编码,因此您最好更改launcher.exe的代码,使其在作为打包应用程序启动时采用“-param”

如果您无法更改该二进制文件的代码,您可以在包中添加第二个EXE,比如helper.EXE,使其成为入口点,然后从那里启动带有所需参数的launcher.EXE

以下是helper.exe的代码片段:

static void Main(string[] args)
{
    string result = System.Reflection.Assembly.GetExecutingAssembly().Location;
    int index = result.LastIndexOf("\\");
    string processPath = $"{result.Substring(0, index)}\\..\\Launcher\\Launcher.exe";
    Process.Start(processPath, "--param");
}
上传至此处的完整示例项目:

您可能还会发现这篇有点相关的博客文章很有帮助: 专业版可以自动管理AppX软件包的快捷方式参数。(应用程序自动包含一个存根EXE,该存根EXE接受您的参数并将其传递给主应用程序EXE)

它还可以导入AppX包,因此您不必从头开始创建项目。导入完成后,您将在Advanced Installer中创建一个项目,从该项目可以创建AppX和MSI(例如,为Win7用户提供服务)

它还有一个VS扩展,使构建和调试更加容易,您可以在上面链接的页面的视频中看到它的实际操作


免责声明:我正在使用team building Advanced安装程序。

今天晚些时候我找到时间后将分享一个代码片段/示例。添加了一个代码片段并立即上载了一个示例。顺便说一句,
Process.Start
打开一个控制台窗口。有没有办法不打开那个窗口?你想启动什么类型的应用程序?如果您将OutputType设置为“Windows应用程序”,则不会创建控制台窗口。我没有专业版本。AdvancedInstaller在appx中注入了一个可执行文件,上面写着购买它。事实上,这是供试用用户使用的。我确实提到过这是专业版支持的功能。一旦你有了许可证,该消息就消失了。通过阅读一些资料,现在我可以用Windows工具包打包并签署appx包。无需使用该试用软件(或可能是广告软件)。
static void Main(string[] args)
{
    string result = System.Reflection.Assembly.GetExecutingAssembly().Location;
    int index = result.LastIndexOf("\\");
    string processPath = $"{result.Substring(0, index)}\\..\\Launcher\\Launcher.exe";
    Process.Start(processPath, "--param");
}