从Visual Studio 2013升级到Visual Studio 2017后,如果我尝试启动我的C++/CLI项目(.vcxproj项目文件)的调试会话,Visual Studio会停止并显示一个对话框,其中写着:
“您正在调试Foo.exe的Release版本。使用Just My Code与使用编译器优化的Release版本会导致调试体验下降(例如,断点将不会被命中)。”
然后我可以选择停止调试或继续调试会话,无论“Just My Code”是否打开。
该项目显然是使用Debug信息构建的,并且没有进行任何优化。因此,旧版的Visual Studio 2013没有显示任何警告。
这两个SO问题(链接)和(链接)处理了由Visual Studio 2015发出的相同警告,但是在阅读了那里提供的建议和提示后,我必须说,它们中没有一个似乎是解决我的问题的令人信服的解决方案。具体而言,我曾经通过启用Visual Studio选项“Suppress JIT optimization on module load (Managed only)”来摆脱警告,但我认为这只是治标不治本。
我应该怎么做才能让Visual Studio 2017检测到我的C++/CLI项目是一个调试版本,以便它不再显示令人烦恼(实际上是误导性的)的警告?
环境:
- Visual Studio 2017 Version 15.5.2 - Visual Studio选项“Just My Code”已启用 - Visual Studio选项“Suppress JIT optimization on module load (Managed only)”已禁用 - 项目是一个本机项目(.vcxproj项目文件),支持CLR(编译器选项/CLR),带有调试信息(链接器选项/DEBUG),并且没有进行任何优化(编译器选项/Od)
“您正在调试Foo.exe的Release版本。使用Just My Code与使用编译器优化的Release版本会导致调试体验下降(例如,断点将不会被命中)。”
然后我可以选择停止调试或继续调试会话,无论“Just My Code”是否打开。
该项目显然是使用Debug信息构建的,并且没有进行任何优化。因此,旧版的Visual Studio 2013没有显示任何警告。
这两个SO问题(链接)和(链接)处理了由Visual Studio 2015发出的相同警告,但是在阅读了那里提供的建议和提示后,我必须说,它们中没有一个似乎是解决我的问题的令人信服的解决方案。具体而言,我曾经通过启用Visual Studio选项“Suppress JIT optimization on module load (Managed only)”来摆脱警告,但我认为这只是治标不治本。
我应该怎么做才能让Visual Studio 2017检测到我的C++/CLI项目是一个调试版本,以便它不再显示令人烦恼(实际上是误导性的)的警告?
环境:
- Visual Studio 2017 Version 15.5.2 - Visual Studio选项“Just My Code”已启用 - Visual Studio选项“Suppress JIT optimization on module load (Managed only)”已禁用 - 项目是一个本机项目(.vcxproj项目文件),支持CLR(编译器选项/CLR),带有调试信息(链接器选项/DEBUG),并且没有进行任何优化(编译器选项/Od)