c++ 从未打包的独立Windows App SDK构建MSI

2w2cym1i  于 2023-11-19  发布在  Windows
关注(0)|答案(1)|浏览(200)

我已经从GitHub获得了Windows App SDK示例,其中有独立的和未打包的C++示例,我想将其构建到MSI安装程序中。我尝试使用Microsoft Visual Studio SDK Projects 2022和Advanced SDK。
Visual Studio工具吐出一个MSI,但不断提示我安装.Net 4.7.2,即使我的机器有它。我使用显示的提示下载它,但它告诉我有一个更新的版本,所以不需要采取任何行动。
高级安装程序要好得多,提供了更多的可配置性,实际上安装了一些东西,但当我试图启动它时,程序无法运行任何东西。
有人做到了吗?

编辑:

使用高级安装程序,可以将控制台应用程序内置到msi中并进行部署,然后运行,具体如下示例:
https://github.com/microsoft/WindowsAppSDK-Samples/tree/main/Samples/Unpackaged/cpp-console-unpackaged
尝试相同的:
https://github.com/microsoft/WindowsAppSDK-Samples/tree/main/Samples/SelfContainedDeployment/cpp/cpp-winui-unpackaged
导致事件查看器注册应用程序崩溃错误:

Faulting application name: SelfContainedDeployment.exe,
version: 0.0.0.0, time stamp: 0x65537f0e
Faulting module name: Microsoft.UI.Xaml.dll, version: 3.1.4.0, time stamp: 0x88757e1c
Exception code: 0xc000027b
Fault offset: 0x00000000003b6ee4
Faulting process ID: 0x0x54C8
Faulting application start time: 0x0x1DA17080FC374D0
Faulting application path: C:\Program Files\SelfContained\SelfContainedDeployment.exe
Faulting module path: C:\Program Files\SelfContained\Microsoft.UI.Xaml.dll
Report ID: 71f6355c-8eaa-4f44-b3c9-985a813658ce
Faulting package full name: 
Faulting package-relative application ID:

字符串
我仍然在努力让它在构建它的同一台机器上运行。

0ve6wy6x

0ve6wy6x1#

我还没有能够实现这一点与微软Visual Studio的Windows项目2022扩展。我希望在稍后的日期有一个更新。
使用一个替代方案,如高级插件(或类似的),你需要手动添加一些文件夹和文件到资源,以便所有的依赖关系被打包。我假设安装程序会自动完成这一点,并且在Windows端有一些问题。
你需要包括Assets文件夹和一个语言资源文件夹。你还需要resources.pri。这些是唯一的要求,自我打包的安装程序可以工作。
要了解如何将实际的WindowsAppSdk准备为未打包的独立应用程序,您需要将以下条目添加到.vcxproj文件中:

<WindowsAppSDKSelfContained>true</WindowsAppSDKSelfContained>
<SelfContained>true</SelfContained>
<AppxPackage>false</AppxPackage>
<WindowsPackageType>None</WindowsPackageType>

字符串
对于一个示例应用程序,请参阅上面问题中发布的示例链接。

相关问题