【发布时间】:2011-09-07 04:05:45
【问题描述】:
我正在使用最新的 Votive (Wix v3.5) 并创建了一个简单的 Wix VS 2010 安装项目。我添加了我的网站参考并将Harvest 选项设置为true。
现在,由于我的 INSTALLDIR 指向 IISROOT 下的文件夹,我得到了这个 light.exe 错误:
[文件路径]:错误 LGHT0231:组件 'cmp93982C4086FF8C75F07339DD7CEA8152' 有一个带有路径的密钥文件 'TARGETDIR\webdir...[文件名].xml'。由于此路径未植根 在标准目录之一(如 ProgramFilesFolder)中,此 组件不符合自动生成的标准 生成的向导。 (如果路径包含 可能是标准目录,例如嵌套带有名称的目录 ProgramFilesFolder 下的“通用文件”。)
虽然我了解此错误背后的原因,但我不一定同意其合理性(也许我不了解 Wix MSI 生成的先天工作原理)。
我该如何解决这个错误?
提供一些上下文:
我正在尝试结合 Team Build 进行设置。我可以使用旧版格式并针对文件夹运行 Heat/Harvest 任务来绕过此问题,但不想走旧版路线。
我对新的基于工作流的构建定义玩得还不够,所以不确定如何合并这个自定义任务。
每次构建安装项目时我都需要运行收获,因为我不想手动跟踪数百个文件。
【问题讨论】:
-
我也有同样的问题;我正在尝试将 C:\Inetpub\wwwroot\MyProject\ 设置为默认安装位置,但 WiX 不会听到它。
-
您找到解决方法了吗?谢谢
-
@SanjaMelnichuk:不幸的是没有。当我转移到其他项目时,我也没有在那里投入更多时间,但我想我在那里尝试做的事情需要一些 XAML 知识和熟悉 TFS 工作流。
-
@Mrchief 最后我找到了解决方法。感谢回复
-
如果有人遇到同样的问题,可以使用 Directory/@ComponentGuidGenerationSeed 属性来解决。你可以在这里找到它的文档wix.sourceforge.net/manual-wix3/wix_xsd_directory.htm。顺便说一句,我使用的是 Wix v3.6,我不确定它是否适用于旧版本。