C# Wix安装程序:尝试从按钮单击运行自定义操作时出错-无法运行完成此安装所需的DLL

C# Wix安装程序:尝试从按钮单击运行自定义操作时出错-无法运行完成此安装所需的DLL,c#,wix,windows-installer,custom-action,C#,Wix,Windows Installer,Custom Action,我正在运行自定义操作并收到以下错误消息: 错误1723。此Windows Installer软件包有问题。无法运行完成此安装所需的DLL。请与您的支持人员或软件包供应商联系。操作CheckLicenseFileExistsCA,条目:CheckLicenseFileExistsCA,库:C:\Users\dafna\AppData\Local\Temp\MSI3395.tmp MSI c E8:04[19:42:28:921]:产品:ReSecServer-错误1723。此Windows Ins

我正在运行自定义操作并收到以下错误消息:

错误1723。此Windows Installer软件包有问题。无法运行完成此安装所需的DLL。请与您的支持人员或软件包供应商联系。操作CheckLicenseFileExistsCA,条目:CheckLicenseFileExistsCA,库:C:\Users\dafna\AppData\Local\Temp\MSI3395.tmp MSI c E8:04[19:42:28:921]:产品:ReSecServer-错误1723。此Windows Installer软件包有问题。无法运行完成此安装所需的DLL。请与您的支持人员或软件包供应商联系。操作CheckLicenseFileExistsCA,条目:CheckLicenseFileExistsCA,库:C:\Users\dafna\AppData\Local\Temp\MSI3395.tmp

我试图在谷歌上搜索解决方案,但没有任何效果,我可能错过了一些东西

    public class CutomActions
    {
        [CustomAction]
        public static ActionResult CheckLicenseFileExists(Session session)
        {
            try
            {
                var filename = Path.Combine(session["LICENSEFILE_DIR_PATH"], "license.dat");

                var exists = File.Exists(filename);
                if (exists)
                {
                    session["LICENSE_FILE_PATH_VALID"] = "1";
                }
            }
            catch (Exception ex)
            {
                return ActionResult.Failure;
            }

            return ActionResult.Success;
        }

Here are the relevant lines:

<CustomAction Id='CheckLicenseFileExistsCA' BinaryKey='ServerInstallerCustomActions.CA' DllEntry='CheckLicenseFileExists' Execute="immediate" Return="check" /> <Binary Id='ServerInstallerCustomActions.CA' SourceFile='$(var.ServerInstallerCustomActions.TargetDir)\ServerInstallerCustomActions.dll' />


<Control Type="PushButton" Id="BrowseLicense" Width="75" Height="17" X="251" Y="101" Text="{\VSI_MS_Sans_Serif13.0_0_0}Browse" TabSkip="no">
      <Publish Property="_BrowseProperty" Value="LICENSEFILE_DIR_PATH" Order="1">1</Publish>
      <Publish Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish>
      <Publish Event="DoAction" Value="CheckLicenseFileExistsCA">1</Publish>
      <Publish Property="TEMP_VERIFIED" Value="[LICENSE_FILE_PATH_VALID]">1</Publish>
      <Publish Property="LICENSE_FILE_PATH_VALID" Value="[TEMP_VERIFIED]" />
    </Control>
自定义操作项目中还有一个配置文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="false">
    <supportedRuntime version="v4.0" />
  </startup>
</configuration>

当您构建自定义操作项目时,应该有一个生成后事件运行,运行MakeSfxCA.exe,输出.CA.dll当您构建自定义操作项目时,应该有一个生成后事件运行,运行MakeSfxCA.exe,输出.CA.dll,即使将操作移动到InstallExecuteSeSequence中运行,我收到相同的错误即使在将操作移动到InstallExecuteSequence中运行后,我也会收到相同的错误谢谢!我的主要错误是我创建了一个基本的dll项目,而不是自定义操作类型的特定项目,所以我根本没有创建*.CA.dll。谢谢!我的主要错误是,我创建了一个基本dll项目,而不是自定义操作类型的特定项目,因此根本没有创建*.CA.dll
<Binary Id='ServerInstallerCustomActions.CA' SourceFile='$(var.ServerInstallerCustomActions.TargetDir)\ServerInstallerCustomActions.CA.dll' />