无法在MSI中运行Wix自定义操作

前端之家收集整理的这篇文章主要介绍了无法在MSI中运行Wix自定义操作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试为我的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,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,

它给我的两个错误代码或消息都不足以告诉我什么是错的.或许我只是不明白他们说的是错的.

起初我以为可能是因为我使用的是Wix 3.5,所以为了确保我尝试使用Wix 3.0,但我得到了同样的错误.

关于我做错的任何想法?

对于自定义操作程序集,您需要一个配置文件并将useLegacyV2RuntimeActivationPolicy属性设置为true.确保将配置文件命名为CustomAction.config.如果你不这样做,它将无法工作.我假设您正在运行.NET 4 Framework.

有关详细信息,请参阅here.另外,正如AntonyW已经指出的那样,fuslogvw.exe在这种情况下非常有用.

猜你在找的Windows相关文章