问题标签 [wixlib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2393 浏览

path - 引用当前wix-library(wixlib)的文件夹

我如何定义相对于我目前所在的“wix-library”项目的 File/@Source?

如果我使用:

然后 ”。” 指调用“Windows Installer Package”项目的根目录,因此不能使用!

0 投票
1 回答
620 浏览

wix - 尝试在引用的解决方案中更改 WixLib 预处理器变量

我创建了一个 WixLib 项目和解决方案,其中包含一个片段,该片段指向我想包含在多个项目中的一组 DLLS。

但是,当我从其他解决方案中引用此 wixlib 时,dll 所在目录的预处理器值随 wixlib 一起提供。我想覆盖这个值或更新它。

我的 Wixlib 看起来像这样:

我想在另一个解决方案中为 var.FarPointDir 指定另一个目录我该怎么办?我正在使用 wix 3.6

0 投票
2 回答
3273 浏览

wix - wix 3.x - 无法加载 xml 文件

我有一个 WIX 包 - 使用 Wix Toolset 3.7 创建,奇怪的是在特定环境中失败并显示以下消息,

ExecXmlFile:错误 0x80070005:无法加载 XML 文件:\sharep001\share\IIS\pre\EAT\Website\CalculationService\Web.config

MSI (s) (70!FC) [11:15:37:491]:产品:EAT 1.0.0.0 -- 错误 25531。无法打开 XML 文件 \sharep001\share\IIS\pre\EAT\Website\CalculationService\ Web.config,系统错误:-2147024891

错误 25531。无法打开 XML 文件 \sharep001\share\IIS\pre\EAT\Website\CalculationService\Web.config,系统错误:-2147024891

CustomAction ExecXmlFile 返回实际错误代码 1603(请注意,如果翻译发生在沙箱内,这可能不是 100% 准确)

为什么我说这种行为很奇怪是因为,

  1. 我可以在网络服务器的本地目录上安装相同的包,没有报告错误。
  2. 我可以在另一个 UNC 目录上安装相同的包,没有报告错误。

为什么会失败?- 只有在创建目录、删除文件、创建 iis 网站等之后才会调用 XML 转换步骤。因此,很难解释为什么,这似乎不是权限问题。

知道如何调试吗?

0 投票
1 回答
1500 浏览

wix - ComponentGroupRef 不适用于 WiX 库

我在 WiX 中创建了一个带有单个 ComponentGroup、Component 和 File 的库,这样:

然后我创建了一个 WiX 项目,添加了对该库的引用(作为项目引用),我正在使用以下代码:

但我收到一个错误Unresolved reference。有什么我想念的吗?还是库仅适用于 UI 而不适用于文件?

编辑:

我添加了完整的代码。

如果我使用 aFeatureRef并将其移到Feature库中,它会起作用,但我想将 Feature 保留在主项目中,并且只Component在库中使用。

0 投票
1 回答
1253 浏览

wix - 如何维护 WIX 设置库中的文件引用完整性

我正在使用 Wix Toolset 3.8 Visual Studio 插件。我创建了一个 WIX 设置库,它封装了一些将由各种服务部署项目使用的通用组件。此库包含对需要打包到每个部署中的多个解决方案文件的引用。

具有解决方案文件参考的通用 WIX 设置库项目

这些依赖项以几种不同的方式在我的 wix 库片段中使用。例如:

无论我将文件作为链接添加到项目中还是将它们复制到项目目录中,以及我是在项目目录中引用它们还是使用它们原始位置的相对路径,WIX 设置库都构建得很好。当我将片段包含在我的 WIX 设置项目中以进行服务部署时,问题就出现了。

直接在安装项目中包含每个解决方案文件是可耻的。

安装项目在文件夹结构中的相对深度不同,因此相对路径不会指向与从 WIX 库引用时相同的位置。当我从 WIX 库中引用操作或功能时,我收到错误,例如The system cannot fine the file '.\Dependency1.dll'XML 正在按原样读取并从安装项目位置而不是库项目位置引用,因此相对目录是错误的。我可以将 WIX 库中的相对路径设置为使用它的安装项目应该使用的路径,或者我也可以将解决方案文件复制到安装项目目录中,但是当然,这完全违背了使用通用 WIX 库。还有其他服务部署项目需要使用这个库。

所以问题是,我如何引用 WIX 库中的解决方案文件,以供使用它的安装项目使用,而不管安装项目所在的目录如何?

0 投票
0 回答
468 浏览

c# - 如何使用 wixlibs 作为支持不同平台的文件引用?

我只是想将我的分布式 C# 项目结构复制到 WIX 设置项目。现在有以下问题:

LIB:从多个 C# 项目构建 AnyCPU .NET dll 的 C# 库解决方案

APP:来自 LIB 的 dll 被这个主应用程序解决方案引用(作为文件引用)。此外,此应用程序解决方案中还包含与平台相关的库,因此能够为两个特定目标平台 x86 和 x64 创建设置非常重要。

现在我开始在 APP 解决方案中创建一个 wixsetup 项目(效果很好)。然后我继续在 LIB 解决方案中创建一个 wixlib,将 LIB .NET dll 引用到 wixlib 中。

现在的问题:

wixlib 在 DirectoryRef 中引用 AnyCPU .NET dll,这似乎是在创建 wixlib 时专门标记了平台的。因此,我必须回到 LIB 解决方案,使用一个平台目标构建项目,将构建的文件(通过 SVN 外部机制)复制到 APP 解决方案,使用与创建 wixlib 完全相同的目标平台构建这个项目重复此过程以创建另一个平台。

看起来这有点复杂,但可行。由于我省略了其他几个同样问题适用的库解决方案,以及所有这些库都用于多个应用程序解决方案的事实 - 最后 - 一切都必须自动在我们的构建服务器上运行,很明显这行不通。

不过,我知道以下解决方案:

将 wixlib 中的 .NET dll 引用加倍,以将它们分配给不同的 DirectoryRef INSTALLDIR 和 INSTALLDIR32,例如,并在 wixsetup 中实现这些不同的目录引用。但这也会使事情复杂化,因此不是我的首选解决方案——如果有替代方案的话。

如果没有明智的选择,请告诉我,我将按照上一段中的说明进行操作。

0 投票
2 回答
1666 浏览

wix - 在链接 wixlib 时处理孤立组件

我的任务是基于第 3 方提供的相同 wixlib 构建 2 个安装程序。完整安装程序包括所有组件,精简版仅包含核心内容。我假设 wixlib 具有以下结构:

安装程序是在 msbuild 中构建的。这些组件通过以下方式包含在项目中:

最后,正如预期的那样,我得到了 LGHT0267 错误:

错误 LGHT0267:找到孤立的组件“BigFile1”。如果这是一个产品,每个组件必须至少有一个父功能。要将组件包含在模块中,您必须将其直接包含为模块元素的组件元素,或通过 ComponentRef、ComponentGroup 或 ComponentGroupRef 元素间接包含。

有没有人想出如何有选择地使用wixlib中提供的组件的解决方法?我可以ExtraStuff为用户包含单独的功能,但这里的目标是缩小安装程序。我可以礼貌地要求第三方提供两个单独的 wixlib,但我想避免它。

0 投票
0 回答
122 浏览

wix - WiX 安装项目引用两个具有相同 File/@Id 的 Wixlib

我是 WiX 的新手,但需要一个复杂的场景!我管理一个包含多个 WCF 库(即模块)的模块化 Web 应用程序,并且需要将每个模块作为一个功能放入最终设置中。

所以我WiX Setup Library为每个生成.wixlib文件的模块和一个WiX Setup引用项目的人管理了一个,并且在最终设置中,.wixlib模块(即)和特性之间也将是一对一的关系。.wixlib

当在 s 之间共享相同的文件时,就会出现问题.wixlib,因为这些共享文件是相似的File/@Id并且Componend/@Id将存在于这些共享文件中。

PS:我使用WaX作为引擎来构建文件,它只是在文件中.wxs使用文件名。File/@IdComponent/@Id.wxs

我相信可能有两种可能的解决方法(我可以不使用它们!)

  1. 强制WaXFile/@IdComponent/@Id每个文件生成随机数的某种方式。
  2. 这可能是Lit.exe(谁构建)在编译和生成最终文件时.wixlib附加随机 id 的一种方式。File/@IdComponent/@Id.wixlib

任何形式的帮助将不胜感激。

0 投票
1 回答
444 浏览

visual-studio-2015 - 尝试将 Wix .wxl 文件移动到 Wix .wixlib 项目

设置

所以我有两个 Wix 项目,一个是我们的主要项目,其中包含 Product.wxs 文件,第二个是我们的共享 .wxs 文件库。我们的主要 Wix 项目引用了库之一。这也是 Visual Studio 2015 解决方案中的全部内容。主 Wix 项目中还有一个 .wxl 文件(WixLocalization 的东西)。

我想要完成的事情

我想将该 .wxl 文件移动到库 Wix 项目,因为它也可以共享给其他项目。

我遇到的问题

当我将文件复制到库项目并删除主项目中的原始文件时,我在 Visual Studio 中收到一堆编译错误,说“本地化变量!(loc.NameOfString)未知。请确保变量是定义。”。编译主项目时出现此错误。Wix 库一编译成功。因此,我无法再创建安装程序。

到目前为止我做了什么

我尝试在 Wix 库项目中搜索使用 .wxl 文件的此类主题,但没有运气。

如果将这些字符串值移动到除“!(loc.StringName)”语法之外的Wix库,我已经尝试深入研究是否还有其他语法可以使用这些字符串值。

我也检查了项目文件,看看是否有一些我需要添加的参考。关于它的“有趣”之处在于 .wxl 中的字符串值仅用于库本身的 .wxs 文件中。例如,我在库中有一个 UI Dialog .wxs 文件,它使用 .wxl 文件中的“!(loc.Title)”字符串值。主项目中的 Product.wxs 文件不使用这些字符串值。

我觉得很奇怪,Wix 库项目本身无法找到/使​​用 .wxl ......

我真的很想让它在库中工作,所以我们只有一个 .wxl 文件,其中包含我们使用的所有字符串值,所以我们不必为其他主要的 Wix 项目一遍又一遍地复制和粘贴同一个文件.

任何类型的帮助将不胜感激。如果我不够清楚,请随时要求澄清任何令人困惑的细节。谢谢,麻烦您了!

0 投票
0 回答
98 浏览

wix - 如何将Win64属性作为wixlib中的变量?

我们在wixlib项目中有一些组件,不同的安装程序项目引用它。问题是 Win64 属性,根据我的调查,其他几个属性只能绑定到预处理器变量。

目前,这迫使我们让库从输出项目中动态引用 ConfigVariables.wxi,例如,如果我们在一个解决方案中没有两个安装程序,这是一个巨大的限制。

可能有人知道在 wixlib 已经构建后使这些值可注入的方法吗?