如果位于单独的文件中,则自定义操作未运行

时间:2012-07-12 12:13:24

标签: wix custom-action

如果我在产品块中编写下面的代码,那么它可以正常工作,但如果我将其写在一个单独的文件中,那么它就无法正常工作。

请有人能告诉我为什么会发生这件事吗?

这是自定义操作的单独文件代码:

<?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>

2 个答案:

答案 0 :(得分:7)

链接器仅包含在解析引用时遇到的片段。

在产品wxs中使用CustomActionRef元素,以确保链接器包含片段。

答案 1 :(得分:3)

您的项目未引用您的片段。您可以在片段中添加一个虚拟属性,然后在主要项目文件中引用您的片段,如此SO答案中所述:WiX: pulling in a CustomTable from a Fragment WITHOUT a CustomAction