首先让我说我可以远程调试远程计算机上的发布版本.我设置我的发布版本就像我的调试版本,但我大多数情况下必须确保没有设置Debug标志.我已经处理了一段时间,并最终决定试图找出为什么我必须经历这个.我还要提一下,我的远程调试经验仅限于这个项目,C#程序使用C++/CLI(用/ clr构建).DLL来调解一些关键的C++库.我不需要调试底层的C++库,但我需要调试C++/CLI代码.(我提到这个的一个原因是我在使用/ clr标志时无法静态链接库).
我最近发现了Dependency Walker,所以我用它来看看发生了什么.事实证明,调试标志设置,链接器链接在MSVCR100D.DLL和MSVCP100D.DLL中,当未设置标志时,它使用不带"D"后缀的文件.现在通常我可能只是将我的那些.DLL版本复制到远程机器上但是有问题.我的VS2010笔记本电脑是64位机器,目标机器是32位.这意味着我拥有的那些DLL的唯一版本是64位.我已经在远程机器上安装了VS2010的远程调试(我在2008年遇到了同样的问题),但它也不包括这些.DLL的调试版本(我不知道为什么,但我假设这是由设计).所以我的问题是:
remote-debugging c++-cli visual-studio-2010 32bit-64bit visual-studio