0

私は SpicIE の .net4 バージョンを使用して 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 チェックをそのままにしておくと、どちらのマシンでも次の行が実行されません。削除すると、開発環境で問題なく実行され、展開環境で NRE がスローされます。私はそれを回避するために多くの安価なハックを試しましたが、うまくいきませんでした。ここで何が起こっているのか、特にnullであると思われる開発マシンで動作することを理解することはできません。

どんな援助でも大歓迎です!

4

1 に答える 1

0

解決しました。その答えは、regasm コマンドに /codebase スイッチがありませんでした。

于 2012-06-12T02:39:01.377 に答える