我编写了一个加载项,修改了(C ++,最有可能,但可能是包含c ++的点网)解决方案。
加载项似乎成功运行。
有时,保存后,甚至在成功构建使用外接程序修改的解决方案后,VisualStudio会崩溃。如果我不保存它也会崩溃,如果我试图关闭而不保存它会崩溃。只...不是每次都。
代码在确定解决方案中不需要某些项目后,尝试在try-catch中删除它们http://msdn.microsoft.com/en-us/library/envdte._solution.remove(v=vs.100).aspx - 并且删除成功。
就像我说的,我可以保存,然后,解决方案可以保存并正确构建......
唯一的问题是,当我尝试关闭解决方案或Visual Studio时,它崩溃了 - 非常糟糕。在AddIn完成后,它可能也会崩溃,稍后会...未确定。
要进行问题排查,我最终添加了
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崩溃。
现在,我已使用MessageBox替换了solution.Remove(projectToRemove)
- 我的代码很满意 - 并且无法执行其工作。
感谢您的任何建议。
答案 0 :(得分:0)
答案 - 不满意,因为它是:我的代码在源代码控制下 - 我有VisualHg - 并且在代码完成后 - 从AddIn返回后 - VisualHg是抛出异常的代码。
据我所知 - 并通过放弃解决了问题 - 我的AddIn最终会告诉用户他应该删除哪些项目 - 但是不要害怕自己删除它们。
也许有一天......