如何使用本机可视化工具在不同的解决方案中处理相似的 class 名称

How to handle similar class names in different solutions, using native visualisers

在我的公司,我们正在使用本机可视化工具(.natvis 文件)来调试 Visual Studio 中的内存转储。

由于不同项目的 class 名称相同,我们正在考虑在项目定义中包含 .natvis 文件,这似乎可行:.natvis 文件嵌入到符号文件中( *.pdb) 在构建期间,这是一件好事。

不幸的是,现在似乎无法进行任何自定义:从两个.natvis文件(PC上的文件和符号文件中的文件)中,符号文件中的文件优先,这使得它不可更改,所以似乎无法再进行自定义。

为了拥有可自定义的 .natvis 文件,我们正在考虑更改 .natvisreload 顺序。这可能还是有另一种方法(比如向 .natvisreload 命令添加参数)?

我的问题似乎无法回答,正如我刚刚在我的 PC 上找到的 natvis 模式中提到的:

natvis files that are part of a loaded project will always take precedence over files in the user natvis directory

似乎可以在同一个 natvis 文件中区分不同的解决方案(应用程序),如您所见:

  <!-- Solution1 -->
  <Type Name="Class_Name">
    <Version Name="Solution1.exe" Min="1.0" Max="99.99"/>
    <DisplayString>Class_Name Solution1 {m_strName}, {m_iID} </DisplayString>
  </Type>

  <!-- Solution2 -->
  <Type Name="Class_Name"> // in Solution2 Class_Name has no strName
    <Version Name="Solution2.exe" Min="1.0" Max="99.99"/>
    <DisplayString>Class_Name Solution2 identifier {m_iID}</DisplayString>
  </Type>