我寫了我自己的調試器可視化器。Visual Studio不加載我的調試器可視化器
它和屬性都在它們自己的程序集中。包含要調試的類的程序集中沒有引用或屬性 - 我想製作一個可供人們使用的可選dll。
我試圖調試的類是通用的。
[Serializable]
public class FinCellTable<S> : IFinCellTable, IEnumerable<List<FinCell.IFinCell>>
where S : class, FinCell.IFinHeaderCell, FinCell.IFinCell, new()
下面是可視化:
[assembly: System.Diagnostics.DebuggerVisualizer(
typeof(Financials.Debugging.CellTableVisualizer),
typeof(VisualizerObjectSource),
Target = typeof(Financials.Transformation.IFinCellTable),
Description = "FinCell Table Visualizer")]
[assembly: System.Diagnostics.DebuggerVisualizer(
typeof(Financials.Debugging.CellTableVisualizer),
typeof(VisualizerObjectSource),
Target = typeof(Financials.Transformation.FinCellTable<Financials.FinCell.FinHeaderCell>),
Description = "FinCell Table Visualizer")]
namespace Financials.Debugging
{
public class CellTableVisualizer : DialogDebuggerVisualizer
{
protected override void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
{
if (windowService == null) throw new ArgumentNullException("windowService");
if (objectProvider == null) throw new ArgumentNullException("objectProvider");
var data = (IFinCellTable)objectProvider.GetObject();
using (var displayForm = new CellTableVizForm())
{
displayForm.PopulateForm(data);
windowService.ShowDialog(displayForm);
}
}
}
}
我運行Visual Studio 2010,和下面的目錄包含展示臺大會的.dll和.PDB:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Packages\Debugger\Visualizers
我在一個特別是FinCellTable的IFinCellTable實例上放置一個斷點。它不顯示放大鏡。
我調試Visual Studio使用另一個Visual Studio作爲第一個VS調試。我看到輸出窗口是第一個VS加載的DLL。當我在一個數據表上觸發一個可視化器時,第二個VS輸出它加載了Microsoft.VisualStudio.DebuggerVisualizers.dll和Microsoft.VisualStudio.Debugger.DataSetVisualizer.dll(後者來自我上面說的正確的目錄)。 (模塊窗口的行爲/顯示相同)。
因此很顯然,我的調試器Visualizer Drop-In組件不是由VS加載的,所以它不知道要顯示放大鏡。
如何讓視覺工作室預先加載展示器,因此插入式展示器工作而且您不需要編輯原始代碼?
沒有任何內容跳出。您*確實*在複製可視化器後重新啓動VS,對吧? – 2010-08-13 16:58:28
你需要做某種UI或環境重裝嗎?這是以前版本中的附件所必需的。 – 2010-11-05 14:25:51
奇怪。我完成了你在這裏描述的內容:http://www.adamjamesnaylor.com/HowToWriteADebugVisualiserInVisualStudio.aspx,它似乎工作正常。正如米歇爾問,你確定它在正確的文件夾?我問,因爲在工作中,我的Visual Studio用戶文件夾在網絡共享上,VS在嘗試訪問共享時拋出安全異常。 – 2012-08-21 20:19:01