在 Visual Studio 中调试会打开错误的源而不是符号服务器上的文件(如果源文件具有相同的名称)

Debugging in Visual Studio opens the wrong source instead of the file on the symbol server (if the source files have the same name)

我四处寻找解决方案,但找不到。

我已将 TeamCity 配置为将包含符号和源代码的包发布到 ProGet。此过程运行良好,ProGet 正确识别符号。

我已根据 ProGet 知识库上的说明进行设置 Visual Studio,即

我已经在 Fiddler 中检查过,当我在调试中启动我们的应用程序时会下载符号。

然后当进入我们包中的方法之一时,它打开了错误的文件。但是,它打开的文件的名称相同(我们在每个包中都有一个名为 Component 的文件,在拉入包的本地解决方案中也有一个)。

如果我更改文件名并重新打包并将其发布到 ProGet,问题就会消失,我可以在调试期间介入文件,但这似乎是一个 hack。

有谁知道如何让符号服务器上的文件优先于解决方案中同名的任何本地文件?Visual Studio?

项目目录下的符号文件总是被加载,针对这个问题,一个示例可以帮助我们轻松理解加载的符号。如果您的本地缓存文件夹中有之前从符号服务器下载的符号文件,我知道它不会在您调试应用程序时再次下载它。所以我的理解是,由于您的符号文件具有相同的名称,因此VS调试会首先从您的本地项目文件夹中搜索并加载符号,然后从符号服务器或其他服务器(如果您的本地计算机没有它们)中下载它。这就是您遇到此问题的原因。

我能想到的解决方法:

(1) 如果您真的想使用两个同名文件,请从调试模块手动加载符号 windows。

(2) 用不同的名字会更好

右键单击包含要打开的文件的项目,然后选择 "Set as StartUp Project"。 现在,当您尝试调试时,它将 运行 正确的文件。