我一直在使用.net4版本的SpicIE开发IE9插件。在我的开发机器上,一切都很棒。在部署机器上进行测试时,我在尝试HostInstance.BrowserRef.Navigate(URL)时不断收到NullReferenceException。我添加了一些日志记录,并且它在两台计算机上报告为null,但它在dev计算机上没有问题。我知道它曾经在部署过程中工作过,并且不知道可能会破坏它的原因。
相关代码如下:
来自插件库:
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。我已经尝试了一些廉价的黑客来解决它没有运气。我不能为我的生活弄清楚这里发生了什么,特别是它在dev机器上工作,而且假设是空的。
非常感谢任何帮助!
答案 0 :(得分:0)
解决了它。答案是regasm命令中缺少/ codebase开关。