如何配置Resharper与Visual Studio 2022中的源代码生成器兼容?
Resharper下Ctrl+Click导航源代码生成器方法打开空文件的问题
问题说明
此问题并非微软日志源代码生成器或LoggerMessageAttribute的专属问题,Resharper对所有源代码生成器均存在该表现,仅以此为例。
使用如下代码触发日志源代码生成器:
public partial class Logger { [LoggerMessage(Level = LogLevel.Information, Message = "Generating {ForecastCount} forecasts")] public static partial void GeneratingForecasts(ILogger logger, int forecastCount); }
应用编译运行正常,但开发者体验存在问题:激活Resharper时,Ctrl+Click点击GeneratingForecasts方法会打开内容为空的logging.g.cs标签页;关闭Resharper后,VS自带的Ctrl+Click可正确导航到生成的源代码。
环境信息:
- Visual Studio版本:17.8.0
- Resharper版本:232.0.20231101.132807(构建于2023-11-01)
解决方法
- 检查Resharper源代码生成器支持设置:
- 打开Resharper选项(菜单栏点击「Resharper」→「Options」)
- 导航到Build, Execution, Deployment → Source Generators
- 确认已勾选「Enable source generators support」,并确保目标源代码生成器(如Microsoft.Extensions.Logging.Generators)处于启用状态
- 若设置正常,点击「Clear caches」按钮,随后重启Visual Studio
- 检查生成代码的导航索引设置:
- 在Resharper选项中导航到Code Inspection → Settings
- 勾选「Include generated code in inspection and navigation」选项
- 若以上操作无效,建议将Resharper更新至最新版本,当前版本可能存在与VS 17.8.0的兼容性bug
内容的提问来源于stack exchange,提问作者g.pickardou
相关产品推荐
相关产品推荐

