在另一个解决方案中找到的类库“无法找到或打开 PDB 文件”

Dra*_*cir 5 c# asp.net-mvc visual-studio-2012

问题:

\n\n

解决方案A(MVC解决方案)无法加载其中一个类库的PDB文件 (MVC 解决方案)无法加载解决方案B(业务逻辑类库)(它加载其他类库 pdb 就很好)

\n\n

环境:

\n\n
    \n
  • .Net 4.0
  • \n
  • 多维控制器
  • \n
  • C#
  • \n
  • 视觉工作室2012
  • \n
  • 在类库的 Debug/bin 文件夹中找到 PDB 文件
  • \n
  • 在引用此类库的所有项目(Debug/bin)中找到 PDB 文件。
  • \n
  • PDB创建时间与编译时间相同
  • \n
\n\n

本地路径:

\n\n
\xe2\x80\xa2 C:\\MyPath\\WK_SOLUTIONA\\Dev_BF\\SolutionA\n\xe2\x80\xa2 C:\\MyPath\\WK_SOLUTIONB\\Prod\\SolutionB\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果有 SolutionA 到 SolutionB 的引用(即 dll 引用),则设置引用路径(属性 > 引用路径)

\n\n

符号加载信息: \n\xc2\xa0

\n\n
C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\Temporary ASP.NET Files\\launcher_devbf\\0a01d364\\380351a5\\assembly\\dl3\\9ae300b0\\47b07c94_5317cf01\\SolutionBClassLibrary.pdb: Cannot find or open the PDB file.\nb:\\23\\575\\src\\SolutionBClassLibrary \\obj\\Release\\SolutionBClassLibrary.pdb: Cannot find or open the PDB file.\nC:\\Windows\\SolutionBClassLibrary.pdb: Cannot find or open the PDB file.\nC:\\Windows\\symbols\\dll\\SolutionBClassLibrary.pdb: Cannot find or open the PDB file.\nC:\\Windows\\dll\\SolutionBClassLibrary.pdb: Cannot find or open the PDB file.\nC:\\Users\\R9962~1.SCH\\AppData\\Local\\Temp\\SymbolCache\\SolutionBClassLibrary.pdb\\4c48672e09774c67b9f8001ecafacbd71\\SolutionBClassLibrary.pdb: Cannot find or open the PDB file.\nC:\\Users\\R9962~1.SCH\\AppData\\Local\\Temp\\SymbolCache\\MicrosoftPublicSymbols\\SolutionBClassLibrary.pdb\\4c48672e09774c67b9f8001ecafacbd71\\SolutionBClassLibrary.pdb: Cannot find or open the PDB file.\nC:\\MyPath\\WK_SOLUTIONB\\Prod\\SolutionB\\bin\\Debug\\SolutionBClassLibrary.pdb: PDB does not match image.\nSYMSRV:  C:\\Users\\R9962~1.SCH\\AppData\\Local\\Temp\\SymbolCache\\SolutionBClassLibrary.pdb\\4C48672E09774C67B9F8001ECAFACBD71\\SolutionBClassLibrary.pdb not found\n\xc2\xa0\n\xc2\xa0\nSYMSRV:  http://referencesource.microsoft.com/symbols/SolutionBClassLibrary.pdb/4C48672E09774C67B9F8001ECAFACBD71/SolutionBClassLibrary.pdb not found\n\xc2\xa0\n\xc2\xa0\nhttp://referencesource.microsoft.com/symbols: Symbols not found on symbol server.\n
Run Code Online (Sandbox Code Playgroud)\n\n

\xc2\xa0

\n\n

我尝试过的:

\n\n
    \n
  • 确保两种解决方案均经过清理和重建
  • \n
  • 清除符号缓存并手动删除以下内容:C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\Temporary ASP.NET Files
  • \n
  • 手动将 pdb 文件插入符号缓存 C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\Temporary ASP.NET File
  • \n
  • 将符号路径“Load Symbols”指向SolutionBClassLibrary的调试文件夹。结果:“在此文件夹中找不到匹配的符号文件”
  • \n
  • 工具 > 选项 > 调试 > 设置“启用 .NET Framework 源步进”(对于两种解决方案)
  • \n
  • 删除IIS虚拟目录并重新创建。
  • \n
  • SoltionA调试到SolutionB
  • \n
  • 从SolutionA开始调试,并在SolutionB上继续调试。每当这个特定的类库被击中时,它都会忽略我的更改。
  • \n
\n

Dra*_*cir 2

我找到了一种解决方法来达到预期的结果。基本上手动覆盖了我进行更改的 dll 引用的 dll。由于这是本地环境,因此不会产生任何影响。

然而,正如我所说,这workaround超出了首先使用参考路径的范围。

编辑:显然,自从我完成此操作以来,现在我的所有更改都被跟踪。所以这确实是正确答案!