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()从功能区的构造函数中调用。在我的盒子上运行时,这两个文件都是用所有的 WriteLines 创建的,除了“caught something”。在另一个盒子上运行时,会创建 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 回答