Wix4:入门不可能,示例错误

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

对于我正在处理的一些项目,我想将我的部署从 ps1 脚本移动到 msi(在管道末端构建)。 于是我决定遵循“Wix方式”,并借此机会学习它。 我去了官方网站,决定使用最新版本(3.x 更常用,但由于 4 刚刚发布,我认为最好从那里开始)。

我在网上查找了一些入门知识来学习基础知识,但看起来什么都没有。然后我尝试按照官方指南至少拥有经典的“hello world”MSI,使用这个示例(取自here):

<Wix
xmlns="http://wixtoolset.org/schemas/v4/wxs"
xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal">

<Bundle
    Name="FirstSample"
    Version="0.0.1.1"
    UpgradeCode="fc56ffde-f642-4086-b22a-306ba0732b12"
    Compressed="no"
    SplashScreenSourceFile="splashscreen.bmp">

    <BootstrapperApplication>
        <bal:WixStandardBootstrapperApplication
            LicenseUrl=""
            Theme="hyperlinkLicense" />
    </BootstrapperApplication>

    <Chain>
        <PackageGroupRef Id="BundlePackages" />
    </Chain>
</Bundle>

当我尝试构建它的那一刻,与

wix 构建 .\SampleFirst.wxs

结果是:

错误 WIX0200:BootstrapperApplication 元素包含未处理的扩展元素“WixStandardBootstrapperApplication”。请确保已提供“http://wixtoolset.org/schemas/v4/wxs/bal”命名空间中元素的扩展。

我有两个问题:

  1. 您认为这是学习 Wix 的正确方法吗?
  2. 如果是的话,我从官网得到的样本wsx有什么问题?

谢谢

wix wix4
1个回答
0
投票

WiX 4 通过 NuGet 包提供扩展。这可以通过两种方式之一来实现。

如果构建 MSBuild (*.wixproj) 文件,您可以添加扩展名,就像在 .Net 项目文件中添加任何 NuGet 包一样。

<ItemGroup>
  <PackageReference Include="WixToolset.Bal.wixext" Version="4.0.1" />
</ItemGroup>

但是,使用命令行界面时,您将需要管理扩展缓存。从项目路径中的终端运行以下命令:

wix extension add WixToolset.Bal.wixext

您可以通过运行确认已获得:

wix extension list

此扩展缓存文件夹名为“.wix”。

© www.soinside.com 2019 - 2024. All rights reserved.