C# 关于从外部程序集检索程序集版本的最有效方法的建议
我需要迭代程序集列表并确定它们的版本号。我以前使用过System.Reflection.Assembly.GetExecutionGassembly().GetName().Version,但在本例中,我使用的是尚未加载的程序集。我知道我可以使用System.Reflection.Assembly.ReflectionOnlyLoadFrom(“Assembly.dll”),但我已经了解到,这会消耗内存,除非我在自己的应用程序域中加载程序集,然后卸载它们。ReflectionOnlyLoadFrom()是真的还是只从LoadFrom()加载C# 关于从外部程序集检索程序集版本的最有效方法的建议,c#,.net,reflection,C#,.net,Reflection,我需要迭代程序集列表并确定它们的版本号。我以前使用过System.Reflection.Assembly.GetExecutionGassembly().GetName().Version,但在本例中,我使用的是尚未加载的程序集。我知道我可以使用System.Reflection.Assembly.ReflectionOnlyLoadFrom(“Assembly.dll”),但我已经了解到,这会消耗内存,除非我在自己的应用程序域中加载程序集,然后卸载它们。ReflectionOnlyLoadFr
或者,有没有一种方法可以在不加载程序集的情况下获取版本信息?您可以使用Mono项目的-库。您可以使用Mono项目的-库。我认为他们没有加载程序集就无法获取程序集版本。我认为他们没有加载程序集就无法获取程序集版本。试一试看看你能行
AssemblyName.GetAssemblyName("foo.dll").Version
它返回一个对象,从中可以获取主要、次要、次要修订和修订信息。根据GetAssemblyName方法上的:
如果文件包含
程序集清单。这种方法会导致
要打开和关闭的文件,但
该程序集未添加到此文件中
域名
看一看。你能行
AssemblyName.GetAssemblyName("foo.dll").Version
它返回一个对象,从中可以获取主要、次要、次要修订和修订信息。根据GetAssemblyName方法上的:
如果文件包含
程序集清单。这种方法会导致
要打开和关闭的文件,但
该程序集未添加到此文件中
域名
接受cecil的建议,因为这不会在我们的环境中引入依赖项。请注意,这里是龙!这对我们来说非常有效,但是由于不同类型的项目(WPF正在做一些奇怪的事情)具有不同的参考需求,它开始出现行为不端的情况,并且问题不容易追踪。我将我们的代码改为使用Cecil。接受Cecil的建议,因为这不会在我们的环境中引入依赖项。请注意,这里有龙!这对我们来说非常有效,但是由于不同类型的项目(WPF正在做一些奇怪的事情)具有不同的参考需求,它开始出现行为不端的情况,并且问题不容易追踪。我要把我们的代码改成使用塞西尔。