gpt4 book ai didi

WiX 在使用星标时给出组件重复的 GUID 错误消息

转载 作者:行者123 更新时间:2023-12-02 15:05:02 29 4
gpt4 key购买 nike

要么是我对 WiX 有什么不了解,要么是历史上最伟大的巧合一次又一次地发生。

我有一个 <Component/>元素。在这个组件中,我将 GUID 分配为星号......就像你一样。

            <Component Id="Component_PowershellDLL"
Guid="*">
<File Source="$(var.MyProject.ProjectDir)System.Management.Automation.dll"/>
</Component>

(我知道我应该使用 Nuget 来访问这个 DLL,但那是另一回事了...)

当我编译时,我得到这个错误信息:

Component/@Id='Component_PowershellDLL' has a @Guid value'{guid-here}' that duplicates another component in this package.

组件中的 DLL 在项目的其他地方使用,但它唯一存在的地方是“MyProject”文件夹(因此,(var.MyProject.ProjectDir))。

当我去掉星标并放入一个普通的旧 Guid 时,我没有得到错误。

任何人都可以阐明这一点吗?我的印象是,当使用星标时,它只会生成一个新的 Guid。那么它生成的 Guid 怎么可能在项目的其他地方呢?


我明白了。我确实将组件安装的 DLL 保留在同一个解决方案中(在所示示例中为 MyProject)。

所以,是的,通过宏在组件中引用的 DLL 存在于 Visual Studio 解决方案中。

我想如果它们有不同的 GUID(存在于另一个项目中的 DLL 和我放入安装所述 DLL 的组件中的 GUID),那么 Windows Installer 将有两个 GUID 用于相同的……东西。

谢谢大家。在我涉足 Windows Installer 世界的过程中,你们提供了真正的帮助。

@PhileDW 你的书就在我身边,但我还没有时间真正阅读它。

最佳答案

WiX 根据文件路径生成 guid,而不是完全随机生成。最可能的解释是您在设置中的其他地方有相同的路径。

关于WiX 在使用星标时给出组件重复的 GUID 错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47209412/

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