我正在尝试编写一个简单的 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/