我一直在使用 .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。我已经尝试了许多廉价的黑客来解决它,但没有运气。我一生都无法弄清楚这里发生了什么,尤其是它确实可以在开发机器上工作,而据说它是空的。
任何帮助将不胜感激!