1

我正在尝试在 Install Shield 中创建一个自动化,但是每当我尝试创建 ISWiRelease 的对象时,它都会引发以下异常。

附加信息:检索具有 CLSID {16C4628B-361F-4739-8D75-4E8FA8C4A348} 的组件的 COM 类工厂失败,原因是以下错误:80040154 未注册类(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))。

我尝试将目标平台更改为 x86,但我仍然收到此异常。我正在使用Install Shield 2015 SP2

我加载的 DLL 是ISWiAuto22

请帮我解决这个问题。

代码:

 public void BuildProject()
        {
            ISWiProductConfigs oProdConfigs;
            ISWiProductConfig oProdConfig;
            ISWiRelease oRelease = new ISWiRelease();
            ISWiProject oISWiProj = new ISWiProject();
            try
            {

                //Create IS object
                oISWiProj.OpenProject(sProjectFileName, false);
                //oISWiProj.ProductVersion = sBuildNumber;

                oProdConfigs = oISWiProj.ISWiProductConfigs;
                oProdConfig = oProdConfigs[oProdConfigs.Count];


                oRelease = oProdConfig.ISWiReleases[1];

                oRelease.ProgressIncrement += new __ISWiRelease_ProgressIncrementEventHandler(release_ProgressIncrement);
                oRelease.StatusMessage += new __ISWiRelease_StatusMessageEventHandler(this.release_StatusMessages);

                oRelease.BuildLocation = sBuildLocation;
                oRelease.Build();

                oISWiProj.SaveProject();

                oISWiProj.CloseProject();
            }
            catch
            {
                //log("Build Failed...");
            }
            finally
            {
                oRelease.ProgressIncrement -= new __ISWiRelease_ProgressIncrementEventHandler(release_ProgressIncrement);
                oRelease.StatusMessage -= new __ISWiRelease_StatusMessageEventHandler(this.release_StatusMessages);
            }
        }
4

0 回答 0