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: Pulling in a CustomTable from a Fragment WITHOUT a CustomAction

于 2012-07-12T17:03:58.363 に答える