我遇到一个问题,即Visual Studio在任何断点处都没有中断消息:
The breakpoint will not currently be hit. No symbols have been loaded for this document
我已经尝试了几乎所有相关的解决方案,但我没有取得任何成功(包括the answers here)。
幸运的是,我在.git
上的版本在推送它时正在工作,所以我测试了将存储库克隆到各种驱动器以查看会发生什么:
C:
(本地) - 这是我运行所有其他项目并且从未遇到此问题的地方。但是,我无法为此项目使用任何断点。
Y:
(远程) - 这是我的部门驱动器,我在过去也做过很多调试而没有这个问题。 这里的断点有效!
H:
(远程) - 这是我的个人网络驱动器 - 这里的断点不起作用。
我还尝试在驱动器中移动项目文件夹,但每个
的结果相同我完全迷失了这一点,非常感谢任何帮助!如果有人能想到,我也很乐意进行更多测试。
答案 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
。