如果我在产品块中编写下面的代码,那么它可以正常工作,但如果我将其写在一个单独的文件中,那么它就无法正常工作。
请有人能告诉我为什么会发生这件事吗?
这是自定义操作的单独文件代码:
<?xml version="1.0" encoding="UTF-8"?>
<?include SetupDefines.wxi?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<!-- The custom action DLL itself.-->
<Binary Id="CA" SourceFile="..\bin\debug\Name.CA.dll" />
<CustomAction Id="CustomAction1"
BinaryKey="CA"
DllEntry="CustomAction1"
Execute="immediate"
Return="check" />
<!--Custom Actions END-->
<InstallExecuteSequence>
<Custom Action="CustomAction1" Before="InstallFiles">
<![CDATA[NOT Installed]]>
</Custom>
</InstallExecuteSequence>
</Fragment>
</Wix>
答案 0 :(得分:7)
链接器仅包含在解析引用时遇到的片段。
在产品wxs中使用CustomActionRef元素,以确保链接器包含片段。
答案 1 :(得分:3)
您的项目未引用您的片段。您可以在片段中添加一个虚拟属性,然后在主要项目文件中引用您的片段,如此SO答案中所述:WiX: pulling in a CustomTable from a Fragment WITHOUT a CustomAction