- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
WiX 组件通常应该有一个 指导 属性,所以如果我想移动组件的 定义 例如将 iis:WebAppPool 和 iis:WebVirtualDir 的组件(或另一个示例 - 包含具有权限的日志文件夹的组件)放入 WiX 库项目 我将无法使用不同的 guid 重用这些定义......对我来说这是一个问题,我想共享定义以定义不同的组件(具有不同的 guid)!
而且没有办法做点什么。
我试图通过像这样的属性来设置 guid
<Component Name="cmpKuku" Guid="[cmpGUID]" />
最佳答案
我读过完全相同的帖子。 Rob Mensching 这么说的原因是您不能将 wixlibs 与其他工具一起使用,因为它们是特定于 wix 的。
但是,wixlibs 和合并模块都非常相似(尽管 wixlibs 是更好/更快和更新的选择)。
因此,要回答您的问题,是的,您可以使用 wixlibs 来包含组件,因为正如我上面提到的,它们类似于合并模块。本质上,单个共享组件在其整个生命周期内必须具有相同的 GUID,并且 Windows 安装程序知道如何跟踪它们。
因此,例如,假设您有一个包含某些组件的 a.wixlib。然后创建两个单独的安装程序 b.msi 和 c.msi,引用相同的 wixlib 并安装它们。 Windows 安装程序将组件的引用计数设置为 2。
稍后您决定卸载 b.msi。 Windows 安装程序将组件的引用计数减少到 1,但尚未卸载它。原因是wixlibs,就像合并模块一样用于共享组件(http://msdn.microsoft.com/en-us/library/windows/desktop/aa369820(v=vs.85).aspx)。因此,在您卸载 c.msi 后,只会删除该组件。
还有一件事。您可以通过放置 guid="*"属性在链接期间生成 GUID。我通常反对它,但它是有效的。
编辑:为了避免误导人们对星号,使用它们并不是一个坏习惯,因为这可能是构建准备升级的产品的最简单方法,因为对于升级,无论如何您都需要生成一个新的 GUID。因此,如果构建中没有额外的复杂性,使用星号可能就可以了。
关于visual-studio-2010 - 我认为 WiX 库项目不适合共享组件定义(并且没有办法对 Guid 进行参数化)是对的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10237522/
我是一名优秀的程序员,十分优秀!