0

(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.

コードを使用してソリューションを閉じたくはありません。VisualStudioをクラッシュさせたくないだけです。

今、私はをsolution.Remove(projectToRemove)MessageBoxに置き換えました-そして私のコードは満足しています-そしてその仕事を実行することができません。

提案ありがとうございます。

4

1 に答える 1

0

答え-現状では不十分です:私のコードはソース管理下にあります-私はVisualHgを持っています-そしてコードが完了した後-アドインから戻った後-VisualHgは例外をスローするものです。

私が得た限りでは-そしてあきらめて問題を修正しました-私のアドインは最終的にどのプロジェクトを削除する必要があるかをユーザーに伝えますが、それら自体を削除することを躊躇しなくなります。

おそらくある日...

于 2013-03-28T16:30:47.060 に答える