永远不会引发DocumentSaved事件

时间:2013-05-16 08:27:06

标签: c# .net visual-studio-extensions envdte vsix

我正在尝试编写一个简单的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方法中的断点被命中,因此问题不存在)

1 个答案:

答案 0 :(得分:3)

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

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