我编写了一个插件来修改(C++,最有可能,但可能是包含 C++ 的点网)解决方案。
加载项似乎运行成功。
有时,在保存后,甚至在成功构建使用插件修改的解决方案后,VisualStudio 崩溃。如果我不保存它也会崩溃,如果我尝试关闭而不保存它会崩溃。只是……不是每次。
该代码在确定它不需要解决方案中的某些项目后,会尝试删除它们, http: //msdn.microsoft.com/en-us/library/envdte._solution.remove(v=vs.100) .aspx - 在 try-catch 中 - 并且删除成功。
就像我说的,我可以保存,然后,解决方案保存并正确构建......
唯一的问题是,当我尝试关闭解决方案或 Visual Studio 时,它崩溃了——严重。它也可能在插件完成后崩溃,稍后……未确定。
为了排除故障,我最终添加了
try
{
solution.Close(false);
}
catch (System.Exception e)
{
MessageBox.Show(e.Message);
}
我得到一个错误:
System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
我不想通过代码关闭解决方案,我只是不想让 Visual Studio 崩溃。
现在,我已经用solution.Remove(projectToRemove)
MessageBox 替换了 - 我的代码很开心 - 并且无法执行它的工作。
谢谢你的任何建议。