簡單的設定

此示例假定已存在名為 MyApp 的應用程式的解決方案。

  • 向解決方案新增新專案: StackOverflow 文件

  • 在 Setup 專案中,從 Projects 選項卡新增對 MyApp 的新引用: StackOverflow 文件

  • Product.wxs 檔案中,使用 HelloWorldProduct 節點的 Manufacturer 屬性進行增值:

<Product Id="*" Name="MyApp.Setup" Language="1033" Version="1.0.0.0" Manufacturer="HelloWorld" UpgradeCode="52f2c69b-5901-4d18-bb96-8c1c86cd1a3e">

在包含 Directory 節點的 Fragment 節點中,用新的 Directory 包裹最後一個節點:

<Directory Id="ManufacturerFolder" Name="!(bind.property.Manufacturer)">
    <Directory Id="INSTALLFOLDER" Name="MyApp.Setup" />
</Directory>

ComponentGroup 節點中,取消註釋註釋節點並刪除 TODO 然後在 Component 中新增 File 節點:

<File Source="$(var.MyApplication.TargetPath)" />

Source 屬性指定在構建期間在哪裡查詢要打包的檔案。我們使用傳遞給 WiX 編譯器的 WiX 前處理器變數,而不是將這些屬性的值硬編碼到原始碼中。

  • 構建 WiX 專案。

而已! 現在你有了一個可以安裝和解除安裝應用程式的工作安裝程式。

完整的 Product.wxs 檔案:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Id="*" Name="MyApp.Setup" Language="1033" Version="1.0.0.0" Manufacturer="HelloWorld" UpgradeCode="52f2c69b-5901-4d18-bb96-8c1c86cd1a3e">
        <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />

        <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
        <MediaTemplate />

        <Feature Id="ProductFeature" Title="MyApp.Setup" Level="1">
            <ComponentGroupRef Id="ProductComponents" />
        </Feature>
    </Product>

    <Fragment>
        <Directory Id="TARGETDIR" Name="SourceDir">
            <Directory Id="ProgramFilesFolder">
                <Directory Id="ManufacturerFolder" Name="!(bind.property.Manufacturer)">
                    <Directory Id="INSTALLFOLDER" Name="MyApp.Setup" />
                </Directory>
            </Directory>
        </Directory>
    </Fragment>

    <Fragment>
        <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
            <Component Id="ProductComponent">
                <File Source="$(var.MyApp.TargetPath)" />
            </Component>
        </ComponentGroup>
    </Fragment>
</Wix>