如何在不使用 MSIX 的情况下部署 .NET Maui 应用程序

问题描述 投票:0回答:1

更新: 我使用 WiX 工具集来构建安装程序至少已有 10 年了。现在,我正在尝试将毛伊岛应用程序添加到安装程序中,但是...

  1. MSIX 仅为当前用户安装 - 我需要它在计算机范围内安装。
  2. MSIX 安装到 C:\Program Files\WindowsApps 中的隐藏文件夹...我不喜欢这个文件夹。我想将其安装到我可以控制的文件夹中。

我的问题是如何构建 Maui 应用程序并获取 ... in... 文件夹中的内容,运行 HEAT(一个 WiX 实用程序)来创建 WiX xxx.wxs 文件并与其他文件构建 WiX 捆绑包应用程序中的组件。不可能在 WiX 捆绑包中部署 MSIX 文件,即使可以,我上面列出的问题也使这变得不可行。

如何获取所有必要的文件,以便可以部署 Maui 应用程序而不使用 MSIX?

@ToolmakerSteve - 是的,我通过 WiX 部署 .NET6/7 项目。这里的实际问题是如何以未打包的方式发布 MAUI 应用程序。 @jfversluis 在这里描述了这个过程:

.NET MAUI Windows 未打包应用程序

c# .net windows-installer maui msix
1个回答
0
投票

我也尝试过这样做。实际上,我必须部署它并在我的 PC 中运行 Maui.exe 文件,但是我遇到了紫色屏幕。部署它的关键是使用 bin 中的 heat 目录和您想要的特定平台(仅在 Windows 中测试过)。我还遇到了 light.exe 问题,不得不将其打包而不是压缩。并且您还必须启用 MAUI.exe 才能正常工作。

紫屏问题显然与WebView2有关,我目前正在努力解决这个问题。如果有人有任何建议,将不胜感激。

这是我的 HeatDirectory 配置。 Maui 安装程序的当前字典与 MauiApp 位于同一文件夹中

 <HeatDirectory OutputFile="ComponentsGenerated.wxs" DirectoryRefId="INSTALLFOLDER" ComponentGroupName="PublishedComponents" SuppressCom="true" Directory="..\MauiApp\bin\$(Configuration)\net7.0-windows10.0.19041.0\win10-$(Platform)" SuppressFragments="true" SuppressRegistry="true" SuppressRootDirectory="true" AutoGenerateGuids="false" GenerateGuidsNow="true" ToolPath="$(WixToolPath)" RunAsSeparateProcess="true" PreprocessorVariable="var.BasePath"/>

这是您必须添加到 Maui.csproj 的内容

<WindowsPackageType>None</WindowsPackageType>
<WindowsAppSDKSelfContained Condition="'$(IsUnpackaged)' == 'true'">true</WindowsAppSDKSelfContained>
<SelfContained Condition="'$(IsUnpackaged)' == 'true'">true</SelfContained>
<OutputType>WinExe</OutputType>

还有launch.setting.json

{
  "profiles": {
    "Windows Machine": {
      "commandName": "MsixPackage",
      "nativeDebugging": false
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.