gpt4 book ai didi

visual-studio-2010 - 创建本地化的 WIX 3.6 Bootstrap 。

转载 作者:行者123 更新时间:2023-12-03 21:22:53 25 4
gpt4 key购买 nike

一年多以前,我在 Visual Studio 2010 中创建了一个 WIX 项目。它会创建一个 MSI 文件和一个 bootstrap setup.exe。实际上,它为两种语言(英语和法语)创建了这对文件。我刚刚将这个项目集成到我们的 TFS CI 构建中。我在获取 CI 构建以生成 bootstrap setup.exe 文件时遇到问题。

我们最近将所有构建服务器上的 Wix 升级到 Wix 3.6 RC。所以,我想我应该尝试一下 Burn,而不是使用旧式的 bootstrap 。我在我的解决方案中添加了一个新的 Bootstrapper 项目。 bootstrapper 项目包括一个简单的 bundle.wxs,它只加载由我的旧 MSI 项目生成的 MSI。但是,当我尝试构建时,出现以下错误:

error LGHT0103: The system cannot find the file 'C:\Tf\Advantage\Dev\Solution\Configuration\LaunchPad.Wix\bin\Release\fr-fr\LaunchPad.msi;C:\Tf\Advantage\Dev\Solution\Configuration\LaunchPad.Wix\bin\Release\en-us\LaunchPad.msi'.



我在包中的包引用如下所示:
<MsiPackage Id="MyApplication" SourceFile="$(var.LaunchPad.Wix.TargetPath)" />

LaunchPad.Wix 是 Wix MSI 项目的名称。如果我将 LaunchPad.Wix 项目更改为仅构建一种语言,则它可以正常工作。在我看来, bootstrap 项目类型不支持为多种语言构建安装文件。这是真的?有关解决方法的任何建议?

编辑

经过进一步调查,我想知道 bootstrap 项目是否甚至支持本地化。我尝试将我的 Wix MSI 项目设置为仅创建 fr-fr。我的 bootstrap 项目用英语创建的 setup.exe。当我编辑 bootstrap 项目的项目属性时,“要构建的文化”字段被锁定且为空白。我将如何构建非英语 bootstrap ?这还有可能吗?

最佳答案

这里发生了几件事:

  • 如果您使用多个文化,则不能在需要单个文件名的 MSBuild 之外的内容中使用 TargetPath。如您所见,TargetPath 是已构建的本地化文件的列表。但是,如果您限定 .msi 包的输出语言,则可以使用 TargetPath:<MsiPackage SourceFile="$(var.TestMsi.en-US.TargetPath)" Id="MsiEnUs" />
  • 如果您想创建一个可以安装 en-US 和 fr-FR 的 bootstrap ,您需要在其自己的 MsiPackage 元素中分别列出每个 .msi 包。
  • 如果您想创建两个 bootstrap ,一个 en-US 和一个 fr-FR,您需要调用 bootstrap .wixproj 两次,每种语言一次。 bootstrap 不支持文化“技巧”——从一次 MSBuild 调用中产生两个输出是有问题的(见证 TargetPath 问题)。

  • 如果您使用 WixStandardBootstrapperApplication,它会自动尝试根据用户 UI 语言本地化 UI,回退到系统 UI 语言,最后回退到英语。它在以 LCID 命名的目录中查找本地化字符串,因此您将拥有如下有效负载:
    <Payload Name="1033\thm.wxl" SourceFile="..." />
    <Payload Name="1036\thm.wxl" SourceFile="..." />

    不幸的是,WixStandardBootstrapperApplication 字符串目前仅适用于 en-US。这就是 fr-FR bootstrap 以英语显示 UI 的原因。您需要本地化 WiX 源文件 HyperlinkTheme.wxl 或 RtfTheme.wxl(取决于您使用的主题)。这两个文件都在 src\ext\BalExtension\wixstdba\Resources 中。

    关于visual-studio-2010 - 创建本地化的 WIX 3.6 Bootstrap 。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11250597/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com