急!!!如何获取托管和非托管的dll版本号?

zoujp_xyz 2010-01-21 05:53:58
输入dll文件路径获得版本
...全文
124 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
chuanchang1314 2011-12-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 poling_ai 的回复:]

请问这个怎么解决的?
[/Quote]

/// <summary>
/// 获取托管和非托管文件的版本信息(如:1.0.0.2)
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
[DllImport("version.dll")]
static extern private bool GetFileVersionInfo(string fileName, uint handle, uint verLen, byte[] data);

[DllImport("version.dll")]
static extern private uint GetFileVersionInfoSize(string fileName, out uint handle);

[DllImport("version.dll")]
unsafe static extern private bool VerQueryValue(byte[] data, string sub, out short* subData, out uint subLen);

[DllImport("version.dll")]
private static extern bool VerQueryValue(byte[] pBlock, string pSubBlock, out string pValue, out uint len);

unsafe public static string GetFileVersion(string path)
{
uint handle = 0;
uint size = GetFileVersionInfoSize(path, out handle);
if (size != 0)
{
byte[] buffer = new byte[size];
if (GetFileVersionInfo(path, handle, size, buffer))
{
short* subBlock = null;
uint len = 0;
if (VerQueryValue(buffer, @"\VarFileInfo\Translation", out subBlock, out len))
{
string spv = @"\StringFileInfo\" + subBlock[0].ToString("X4") + subBlock[1].ToString("X4") + @"\ProductVersion";
string versionInfo;
if (VerQueryValue(buffer, spv, out versionInfo, out len))
{
return versionInfo;
}
}
}
}
return null;
}
poling_ai 2011-12-07
  • 打赏
  • 举报
回复
请问这个怎么解决的?
chuanchang1314 2010-01-26
  • 打赏
  • 举报
回复
遇到一样的问题~!
zoujp_xyz 2010-01-22
  • 打赏
  • 举报
回复
获取版本号只是为了更新文件,如果使用
Assembly assembly = Assembly.LoadFrom(path);
AssemblyName assemblyName = assembly.GetName();
Version version = assemblyName.Version;
则文件被占用了……
怎么才能卸载程序集?
世外涛缘 2010-01-22
  • 打赏
  • 举报
回复
非托管的试试:GetFileVersionInfo
世外涛缘 2010-01-22
  • 打赏
  • 举报
回复
托管的可以这样:

Assembly assembly = Assembly.LoadFrom(path);
AssemblyName assemblyName = assembly.GetName();
Version version = assemblyName.Version;

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧