从 Wix 3 升级后,Wix 5 CustomAction 批处理文件失败

问题描述 投票:0回答:1
wix wix4 wix5
1个回答
0
投票

tldr:批处理文件不存在,导致自定义操作返回错误。

作为 Wix 5 升级的一部分,我们用新的 Files 元素替换了用于复制各种文件的 heat 转换,包括相关的批处理文件。 事实上有两个 Files 元素,最初设置为:

       <ComponentGroup Id="ApplicationFiles">
            <Files Directory="BinDir" Include="$(env.HeatProgramSourceFiles)\**">
            </Files>

            <Files Directory="SetupDir" Include="$(env.HeatProgramSourceFiles)\**">
            </Files>
        </ComponentGroup>

请注意,在上面的配置中,包含属性都设置为同一目录。 结果,包括batch.bat在内的多个文件被引用了两次。 如果文件被多次引用,Wix 构建将跳过复制文件。 这导致batch.bat被复制到错误的位置。 当自定义操作尝试在预期位置运行该文件时,该文件不存在。 更正文件包含属性,使目录不重叠,修复自定义操作:

       <ComponentGroup Id="BrainBankFiles">
            <Files Directory="BinDir" Include="$(env.HeatProgramSourceFiles)\bin\**">
            </Files>

            <!-- 
                Be careful that the Files Include attribute below specifies a directory that
                DOES NOT overlap any directories specified in previous Files elements.  If
                you do, you will get a warning during the wix build and the duplicate references
                will not get copied to the target location during install.
            -->
            <Files Directory="SetupDir" Include="$(env.HeatProgramSourceFiles)\setup\**">
            </Files>
        </ComponentGroup>
© www.soinside.com 2019 - 2024. All rights reserved.