9

Wix インストール用のカスタム アクションを作成しようとしていますが、機能していません。理由がわかりません。

適切な Wix ファイルのビットは次のとおりです。

<Binary Id="INSTALLERHELPER" SourceFile=".\Lib\InstallerHelper.dll" />
<CustomAction Id="HelperAction" BinaryKey="INSTALLERHELPER" DllEntry="CustomAction1" Execute="immediate" />

カスタム アクションの完全なクラス ファイルは次のとおりです。

using Microsoft.Deployment.WindowsInstaller;

namespace InstallerHelper
{
  public class CustomActions
  {
    [CustomAction]
    public static ActionResult CustomAction1(Session session)
    {
      session.Log("Begin CustomAction1");

      return ActionResult.Success;
    }
  }
}

このアクションは、UI でボタンを押すことによって実行されます (今のところ)。

  <Control Id="Next" Type="PushButton" X="248" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)" >
      <Publish Event="DoAction" Value="HelperAction">1</Publish>
  </Control>

MSI を実行すると、ログに次のエラーが記録されます。

MSI (c) (08:5C) [10:08:36:978]: Connected to service for CA interface.
MSI (c) (08:4C) [10:08:37:030]: Note: 1: 1723 2: SQLHelperAction 3: CustomAction1 4: C:\Users\NATHAN~1.TYL\AppData\Local\Temp\MSI684F.tmp 
Error 1723. There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor.  Action SQLHelperAction, entry: CustomAction1, library: C:\Users\NATHAN~1.TYL\AppData\Local\Temp\MSI684F.tmp 
MSI (c) (08:4C) [10:08:38:501]: Product: SessionWorks :: Judge Edition -- Error 1723. There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor.  Action SQLHelperAction, entry: CustomAction1, library: C:\Users\NATHAN~1.TYL\AppData\Local\Temp\MSI684F.tmp 

Action ended 10:08:38: SQLHelperAction. Return value 3.
DEBUG: Error 2896:  Executing action SQLHelperAction failed.
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2896. The arguments are: SQLHelperAction, , 

表示される 2 つのエラー コードまたはメッセージのどちらも、何が問題なのかを判断するには不十分です。あるいは、彼らが言っていることが間違っていることを理解していないだけかもしれません。

最初は、Wix 3.5 を使用していたことが原因ではないかと思ったので、念のため Wix 3.0 を使用してみましたが、同じエラーが発生します。

私が間違っていることについてのアイデアはありますか?

4

7 に答える 7

8

カスタム アクション アセンブリには、構成ファイルが必要で、useLegacyV2RuntimeActivationPolicy属性を に設定しますtrue。必ず config ファイルに名前を付けてくださいCustomAction.config。そうしないとうまくいきません。.NET 4 Framework で実行していると仮定しています。

詳細については、こちらを参照してください。また、AntonyW が既に指摘したように、fuslogvw.exe はこのシナリオで非常に役立ちます。

于 2010-08-24T23:12:25.430 に答える
7

経由で起動されたカスタム アクションはDoAction、ログ ファイルに書き込むことができません。

私が最初に WiX を使い始めたときも、これは私を混乱させました。

何が起こっているかを確認したい場合System.Diagnostics.Debugger.Launch()は、カスタム アクションの開始時に使用できます。これにより、デバッグできるように Visual Studio をプロセスにアタッチするように求められます。

于 2010-04-12T18:34:15.487 に答える
1

このエラーは、インストーラー プロジェクトの構成/プラットフォームが debug/x64 に設定され、カスタム アクション プロジェクトの構成/プラットフォームがそれぞれ debug/x86 に設定されている場合に発生します。

プラットフォーム設定を修正して、同じプラットフォーム用のプロジェクトをビルドします

私の場合、プラットフォームを変更すると問題が解決しました。

ありがとうヨゲシュ

于 2014-04-15T08:22:56.643 に答える