我开发了一个用于内部电子邮件报告的库。当我从另一个项目使用该库时(通过添加引用)。
它在以下行中提供NullReferenceException
。
System.Reflection.Assembly.GetEntryAssembly().GetName().Name
任何想法,为什么大会是空的?
答案 0 :(得分:20)
特别是在Windows服务中,这是由非托管运行时加载的。
使用:
Process.GetCurrentProcess().MainModule.FileName
获取非托管入口点文件。
看来你正在寻找这个:
System.Reflection.Assembly.GetExecutingAssembly().GetName().Name
答案 1 :(得分:1)
问题解决了,
我正在使用
Assembly.GetAssembly(ex.TargetSite.DeclaringType.UnderlyingSystemType).GetName().Name
获取EntryAssemblyName 在这种情况下,我已经有一个参数,它采用Exception'ex',所以我用它来解决它。
非常感谢各位,特别是@Aliostad
干杯
答案 2 :(得分:0)
在回答这两个OP的和@Neeraj的问题:有时它也可能是有用的,让您装配的根与Assembly.GetExecutingAssembly().Location
(例如,当ReSharper的测试运行使用{{1时,让您的生活艰苦}})
GetEntryAssembly()