能否将预编译的二进制exe文件打包到MSIX安装包中?
MSIX打包独立C++二进制文件的解决方案
MSIX完全支持直接打包已编译好的二进制exe文件,无需持有原始开发项目,以下是三种常用的实现方案:
方案1:使用MSIX Packaging Tool(最便捷)
这是微软官方推出的可视化打包工具,无需开发环境即可完成打包:- 安装工具后启动,选择「创建新包」->「手动打包」
- 指定
MyApp.exe所在的文件夹作为包内容根目录,同步添加所有依赖的dll、资源文件到该目录下 - 按提示填写包的显示名称、发布者、版本号等标识信息
- 将应用入口点设置为
MyApp.exe,确认配置后即可直接生成MSIX包
方案2:使用Visual Studio打包项目
你之前用过的Windows Application Packaging工具不需要绑定原开发项目,仅用二进制文件也可以打包:- 新建空白的Windows Application Packaging项目
- 右键项目选择「添加」->「现有项」,导入你的
MyApp.exe及所有依赖文件 - 选中所有导入的文件,将属性中的「复制到输出目录」设置为「如果较新则复制」
- 打开
Package.appxmanifest配置文件,将应用入口点修改为MyApp.exe - 直接生成项目即可得到MSIX包,该方案也支持直接提交应用到Windows Store
方案3:命令行自动化打包(适合CI/CD场景)
如果你需要自动化打包流程,可以使用Windows SDK自带的makeappx.exe工具:- 自行编写符合规范的
AppxManifest.xml清单文件,配置包信息和入口点 - 将所有待打包的二进制文件放到同一个目录下
- 执行命令
makeappx pack /d [二进制文件目录路径] /p MyApp.msix即可生成包
- 自行编写符合规范的
注意事项:
- 打包时需要将C运行时依赖一并处理:要么将对应的
msvcpXXX.dll、vcruntimeXXX.dll等运行时文件和MyApp.exe放在一起打包,要么在包依赖中声明对应版本的VC运行时框架包,避免应用在用户设备上无法启动- 如果需要上架Windows Store,打包时填写的发布者名称需要和你微软商店开发者账户的发布者ID保持一致,签名环节可以在商店提交时由平台自动完成
内容的提问来源于stack exchange,提问作者Mykhailo Seniutovych
相关产品推荐
相关产品推荐

