一个以上的文件不能使用自动生成的guid,除非有一个版本控制的文件是密钥,而其他文件没有版本控制.错误

本文关键字:文件 版本控制 密钥 错误 有一个 其他 不能 自动生成 一个以 guid | 更新日期: 2023-09-27 18:08:45

我有一个c#解决方案,有4个项目,只有一个单一的dll创建了3个项目和一个exe从主项目。我从来没有使用过WIX,但遵循简单的例子,能够编译我的代码,但只有。exe被部署。我试着修改添加其他项目:

<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
    <Component Id="ProductComponent">
        <File Source="$(var.MedusaPerfApp.TargetPath)" />
        <File Source="$(var.CustomClassLibrary.TargetPath)" />
        <File Source="$(var.CustomControls.TargetPath)" />
        <File Source="$(var.MultitaskingFramework.TargetPath)" />
    </Component>
</ComponentGroup>
</Fragment>

我得到以下错误:

Error   3   The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components with more than one file cannot use an automatically generated guid unless a versioned file is the keypath and the other files are unversioned. This component has a non-keypath file that is versioned. Create multiple components to use automatically generated guids.

一个以上的文件不能使用自动生成的guid,除非有一个版本控制的文件是密钥,而其他文件没有版本控制.错误

如错误信息所示:Create multiple components to use automatically generated guids.将每个File元素放到自己的Component元素中

我遇到了同样的问题,并找到了一个解决方案,而不必将每个文件包装在组件标记中。你所要做的就是给组件添加一个Guid。

<Component Id="appComponent" Guid="6263db4e-4c67-4adc-9ef1-e1caef798331">

下面是一个例子