0

我一直在使用 .net4 版本的 SpicIE 开发 IE9 插件。在我的开发机器上,一切正常。在部署机器上进行测试时,我在尝试 HostInstance.BrowserRef.Navigate(URL) 时不断收到 NullReferenceException。我添加了一些日志记录,并且在两台机器上都报告为 null,但它在开发机器上没有问题。我知道有一次它在部署中起作用,但不知道是什么破坏了它。

相关代码如下:

从插件库:

public class KB_Toolbar : SpicIE.Host
{
    ...
    public static KB_Toolbar HostInstance;

    public KB_Toolbar() : base()
    {
        HostInstance = this;
    }

    public static void OpenURL(string URL)
    {
        if (HostInstance != null)
            HostInstance.BrowserRef.Navigate(URL);
    }
 }

从工具栏类:

    private void MenuClick(object sender, EventArgs e)
    {
        var URL = vURL[(int)((ToolStripDropDownItem)sender).Tag];
        KB_Toolbar.OpenURL(URL);
    }

如果我将 HostInstance != null 检查留在那里,它不会在任何一台机器上执行下一行。如果我删除它,它会在 dev 上毫无问题地执行,并在部署中抛出 NRE。我已经尝试了许多廉价的黑客来解决它,但没有运气。我一生都无法弄清楚这里发生了什么,尤其是它确实可以在开发机器上工作,而据说它是空的。

任何帮助将不胜感激!

4

1 回答 1

0

解决了。答案是 regasm 命令中缺少 /codebase 开关。

于 2012-06-12T02:39:01.377 回答