2

我正在尝试编写一个简单的 Visual Studio 扩展,在保存文件时执行一个操作:

    protected override void Initialize()
    {
        base.Initialize();

        var dte = (DTE)GetService(typeof(DTE));
        dte.Events.DocumentEvents.DocumentSaved += DocumentEvents_DocumentSaved;
    }

    void DocumentEvents_DocumentSaved(Document doc)
    {
        // Do something
    }

但显然该DocumentsSaved事件从未被提出,所以DocumentEvents_DocumentSaved不被称为......

我错过了什么吗?每次保存文件时不应该引发此事件吗?如果没有,是否有另一种方法可以检测到解决方案中文件的更改?(如果可能的话,我宁愿避免诉诸FileSystemWatcher...)

(注意:我知道扩展已经正确加载,因为Initialize方法中的断点被命中,所以问题不存在)

4

1 回答 1

3

据此:http ://social.msdn.microsoft.com/Forums/en-US/vsx/thread/0857a868-e650-42ed-b9cc-2975dc46e994

您需要保持对 Events 和 DocumentEvents 对象的强引用才能使其工作。

于 2013-05-16T08:32:39.677 回答