c# - DocumentSaved 事件永远不会引发

标签 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 方法中遇到了断点,因此问题不存在)

最佳答案

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

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

关于c# - DocumentSaved 事件永远不会引发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16582478/

相关文章:

c# - 为什么修改本地数据时yield return不起作用?

javascript - Response.Redirect 在 JsonResult 中

c# - MongoDB 文本搜索使用 c# Driver 2.4.4

c# - 在一个包含两个项目的解决方案文件中安装不同版本的 nuget 包

c# - 如何配置 tfs 构建代理来构建发布配置文件?

c# - 指定的容器不存在(Azure)

.net - Windows 窗体计时器与单线程应用程序

c# - 插入多条记录时 Entity Framework 外键问题?

visual-studio - 自定义Intellisense扩展

visual-studio-extensions - Visual Studio SDK - 如何在调用的命令上添加边距字形?