4

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

请问谁能告诉我为什么会发生这种情况?

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

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

2 回答 2

7

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

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

于 2012-07-12T23:11:57.160 回答
3

您的项目没有引用您的片段。您可以向您的片段添加一个虚拟属性,然后在您的主项目文件中引用您的片段,如此 SO 答案中所述:WiX:从没有 CustomAction 的片段中提取 CustomTable

于 2012-07-12T17:03:58.363 回答