断点仅在项目从某些位置运行时工作

时间:2016-09-07 15:14:13

标签: wpf git debugging visual-studio-2015 breakpoints

我遇到一个问题,即Visual Studio在任何断点处都没有中断消息:

The breakpoint will not currently be hit. No symbols have been loaded for this document

我已经尝试了几乎所有相关的解决方案,但我没有取得任何成功(包括the answers here)。

幸运的是,我在.git上的版本在推送它时正在工作,所以我测试了将存储库克隆到各种驱动器以查看会发生什么:

C:(本地) - 这是我运行所有其他项目并且从未遇到此问题的地方。但是,我无法为此项目使用任何断点。

Y:(远程) - 这是我的部门驱动器,我在过去也做过很多调试而没有这个问题。 这里的断点有效!

H:(远程) - 这是我的个人网络驱动器 - 这里的断点不起作用。

我还尝试在驱动器中移动项目文件夹,但每个

的结果相同

我完全迷失了这一点,非常感谢任何帮助!如果有人能想到,我也很乐意进行更多测试。

1 个答案:

答案 0 :(得分:0)

事实证明,这是由我的Post-Build Action exports.findTargetRecord = function(code){ return new Promise(function(resolve, reject){ Schools .query({ where: { code: code }}) .fetchOne() .then(school => { if(school) return resolve(school); return Organizations .query({ where: { code: code }}) .fetchOne(); }) .then(org => { if(org) return resolve(org); resolve(null); }) .catch(err => reject(err)); }); }; 引起的:

ILMerge.bat

此操作正常,但问题与我访问CMD ECHO parameter=%1 CD %1 COPY WpfFileDeleter.exe temp.exe ECHO "..\..\ILMerge.exe" "..\..\ILMerge.exe" /out:"WpfFileDeleter.exe" /targetPlatform:"v4" "temp.exe" "Microsoft.WindowsAPICodePack.dll" "Microsoft.WindowsAPICodePack.ExtendedLinguisticServices.dll" "Microsoft.WindowsAPICodePack.Sensors.dll" "Microsoft.WindowsAPICodePack.Shell.dll" "Microsoft.WindowsAPICodePack.ShellExtensions.dll" DEL temp.exe

的方式有关

本地驱动

.sln本地构建时,构建操作成功,但是一旦二进制文件与所需的.dll合并,断点就不再正常,因为C:不会与现有.exe(不受.pdb影响)。

通过ILMerge

访问网络驱动器

如果我(在资源管理器中)导航到\\\\,则构建操作将无法运行,因为\\\file\test\文件无法在UNC路径上运行:

  

CMD不支持UNC路径作为当前目录

当构建后操作失败时,调试将在断点处正常工作。

从映射的网络驱动器运行

如果我只是通过.bat导航到该文件夹​​,那么构建后的操作确实有效,因为它会显示Y:\test而不是Y:。但是,与本地驱动器中的方案类似,这会阻止我正确调试。

这解释了为什么它在1(映射)网络驱动器上工作,而不是在另一个网络驱动器上工作,以及为什么它不在\\上工作(因为后构建操作不允许它被调试)

解决方法是仅在c:程序集上运行构建后操作,而不是Release