在.NET Framework WebAPI服务上,使用Raygun和NLog。当发生异常时,Raygun跟踪正在执行的程序集的正确版本。但是当通过NLog Raygun目标报告错误时,它只显示Could not find value for entry assembly and version type File
。
我已经尝试解决这个问题:
1.更新所有软件包
1.在WebApiConfig.Register
中设置RaygunWebApiClient.ApplicationVersion
,没有成功
1.在nlog.config中设置<target ApplicationVersion="1.1.1.1" />
,这实际上可以工作,但它是一个固定的字符串,而不是当前的程序集版本。
1.在nlog.config中设置<target UseExecutingAssemblyVersion="true" />
,不起作用
1.在.csproj中为所有(.NET标准)子项目设置AssemblyVersion、FileVersion和Version,但没有成功
不确定,还有什么可以帮助。当我在调用Logger.Error
的地方调用Assembly.GetExecutingAssembly().GetName().Version
时,它返回正确的版本(但仍然没有记录)。
1条答案
按热度按时间a6b3iqyw1#
NLog.Raygun-nuget-package支持target-option
ApplicationVersion
的NLog Layout,所以你可以这样做:你可以在运行时像这样提供NLog GDC值:
您也可以考虑使用NLog ${assembly-version}而不是使用NLog GDC。只需指定要从中提取版本信息的程序集
Name
(如果Entry-Assembly版本不工作)。注意NLog中的
UseExecutingAssemblyVersion
。Raygun意味着自动从System.Reflection.Assembly.GetEntryAssembly()
解析汇编版本。我猜选项名称是误导性的,标签:https://github.com/MindscapeHQ/NLog.Raygun