我有c#应用程序,当我进行更改时,收到错误消息:
未处理的类型' System.TypeLoadException'发生在 WindowsFormsApplication1.exe
其他信息:无法加载类型
' TradeIdeas.TIProData.OddsMakerColumnConfiguration'从装配 ' TIProData,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'。
此消息表示dll(TIProData)的版本号为1.0.0.0。我认为有更新版本可用。如何判断机器上的dll版本号?
答案 0 :(得分:25)
您可以使用Reflector,ILDASM或ILSpy来获取程序集版本。
您通常可以在C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\ildasm.exe
中找到ILDASM(其中v8.1A
是安装的Windows SDK版本。)
ILDASM:
反射器:
答案 1 :(得分:2)
您可以使用小型util app中的AssemblyName.GetAssemblyName(string path)
。
此处有关MSDN的详细信息。
答案 2 :(得分:1)
有几种方法可以做到:
如果在Visual Studio中引用dll,请右键单击它(在ProjectName / References文件夹中)并选择" Properties"你有"版本"和#34;运行时版本"那里。
在文件资源管理器中右键单击dll文件并选择属性时,会出现一个"文件版本"和"产品版本"那里。
或者,在代码中进行调查:
Assembly assembly = Assembly.LoadFrom("TestAssembly.dll");
Version ver = assembly.GetName().Version;
答案 3 :(得分:0)
如果您知道属于程序集的Class,则可以使用GetTypeInfo
var runtimeVersion = typeof(MyClass)
.GetTypeInfo()
.Assembly
.GetCustomAttribute<AssemblyFileVersionAttribute>();
String ver = RuntimeVersion.Version;
该示例适用于.Net Core 来自https://developers.de/blogs/damir_dobric/archive/2017/06/27/how-to-deal-with-assembly-version-in-net-core.aspx