Проблемы с запуском потока в надстройке ленты Word 2007

Я создал проект надстройки Word 2007 на C#, который отлично работает на моей машине и на машине другого разработчика. Однако, когда мы пытаемся развернуть программное обеспечение в пустом поле, 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() вызывается из конструктора ленты. При запуске на моем компьютере оба файла создаются со всеми WriteLines, кроме «что-то поймал». При запуске в другом поле создается startThread.txt и выводятся все строки, кроме «что-то поймал», но waitForSignal.txt никогда не создается, и появляется окно Microsoft «возникла проблема, хотите отправить сообщение об ошибке».

Я думаю, что есть какая-то проблема с безопасностью, из-за которой Word не может запускать новые потоки, но я не могу понять, как это изменить.

Кто-нибудь знает, действительно ли это проблема и как ее исправить? Или если вы видите что-то еще, что может быть причиной проблемы?


person Ryan Ahearn    schedule 28.08.2009    source источник


Ответы (1)


Оказывается, для моего кода ленты требовался .NET 2.0 с пакетом обновления 2, а на компьютере пользователя был установлен только .NET 2.0 с пакетом обновления 1. Microsoft понимает, что изменение пакета обновления в той же версии создаст несовместимый код.

person Ryan Ahearn    schedule 28.08.2009