VS2017中使用XslCompiledTransform无法调试C#项目的XSLT代码?
解决Visual Studio 2017中XSLT断点失效的问题
我之前也踩过VS2017里用XslCompiledTransform时XSLT断点完全失效的坑,折腾了好一阵才找到几个有效的解决办法,你可以逐一试试:
检查XSLT文件的调试属性
右键项目里的XSLT文件,选择「属性」,切换到「高级」标签页,确保「调试」选项设置为「启用」。有些迁移过来的旧项目,这个属性会被默认关闭,直接导致断点无法识别。显式开启XslCompiledTransform的调试模式
在C#代码实例化XslCompiledTransform时,一定要传入true作为构造函数参数,强制启用调试支持:// 必须传true才能开启XSLT调试 var xsltTransform = new XslCompiledTransform(true); xsltTransform.Load("YourTransformFile.xsl");旧版本VS可能默认启用调试,但VS2017里这个参数是必填项,漏掉的话断点根本不会生效。
清理缓存并重建解决方案
VS的缓存有时候会搞出各种奇怪的问题,尤其是升级项目后。先通过菜单「项目→清理解决方案」清理,然后手动删除项目下的bin和obj文件夹,再重新生成整个解决方案。我之前就是靠这个解决了断点不命中的问题。关闭「仅我的代码」调试选项
打开VS的「工具→选项→调试→常规」,看看「启用仅我的代码」是否勾选。如果勾选了,调试器会跳过XSLT这类非托管/第三方代码的调试,把这个选项关掉再试试。手动触发调试器附加
如果上面的方法都没用,可以在C#代码执行XSLT转换的前一行加一句:System.Diagnostics.Debugger.Break();运行程序到这里时,会弹出调试器选择窗口,选择当前的VS实例,之后就能正常在XSLT文件里设置断点并单步执行了。
内容的提问来源于stack exchange,提问作者jrichview
相关产品推荐
相关产品推荐

