我正在尝试编写一个简单的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
方法中的断点被命中,因此问题不存在)
答案 0 :(得分:3)
根据这个:http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/0857a868-e650-42ed-b9cc-2975dc46e994
您需要对Events和DocumentEvents对象保持强大的引用才能使其正常工作。