0

C# で Word 2007 アドイン プロジェクトを作成しましたが、これは私のボックスと仲間の開発者のボックスで正常に動作します。ただし、空のボックスにソフトウェアを展開しようとすると、バックグラウンド スレッドを開始したときに Word が激しくクラッシュします (例外はスローされません)。

関連するコードは、Ribbon.cs ファイルにあります。

private void startThread()
{
    StreamWriter fout = new FileInfo("C:\\startThread.txt").CreateText();
    fout.WriteLine("startThread start");
    fout.Flush();
    try {
        ThreadStart job = new ThreadStart(this.waitForSignal);
        Thread thread = new Thread(job);
        thread.Start();
        fout.WriteLine("No Exceptions?");
    }
    catch
    {
        fout.WriteLine("caught something");
    }
    fout.WriteLine("startThread end");
    fout.Flush();
    fout.Close();
}
public void waitForSignal()
{
    StreamWriter fout = new FileInfo("C:\\waitForSignal.txt").CreateText();
    fout.WriteLine("entered waitForSignal");
    fout.Flush();
    fout.Close();
}

startThread()リボンのコンストラクターから呼び出されます。私のボックスで実行すると、「caught something」を除くすべての WriteLines で両方のファイルが作成されます。別のボックスで実行すると、startThread.txt が作成され、「caught something」以外のすべての行が出力されますが、waitForSignal.txt は作成されず、Microsoft の「問題が発生しました。エラー メッセージを送信しますか」というボックスが表示されます。

Word が新しいスレッドを開始する機能を拒否しているセキュリティ上の問題があると思いますが、それを変更する方法がわかりません。

それが本当に問題であるかどうか、そしてどのように修正するかを誰かが知っていますか? または、問題を引き起こしている可能性のある他の何かを見つけた場合は?

4

1 に答える 1

1

私のリボン コードには .NET 2.0 Service Pack 2 が必要でしたが、ユーザーのコンピュータには .NET 2.0 Service Pack 1 しかインストールされていませんでした。Microsoft は、同じバージョンでサービス パックを変更すると、互換性のないコードが作成されると考えています。

于 2009-08-28T18:52:59.760 に答える