C# 应用程序校验程序集中的版本信息是否被修改过

以下方法只校验了文件版本,如果想要校验其他属性信息,可自行扩展

    public static class AssemblyInfoReader
    {
        /// <summary>
        /// 校验指定文件(如exe)的版本信息是否与当前程序集的版本信息一致
        /// </summary>
        /// <returns>是否一致</returns>
        public static bool CheckFileVersionMatchesAssembly()
        {
            try
            {
                // 获取当前程序集的版本信息
                var assembly = System.Reflection.Assembly.GetExecutingAssembly();
                var fileVersionAttr = assembly.GetCustomAttribute<System.Reflection.AssemblyFileVersionAttribute>();
                var assemblyFileVersion = fileVersionAttr?.Version;

                // 获取目标文件的版本信息
                var fileVersionInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo(Process.GetCurrentProcess().MainModule.FileName);
                var fileFileVersion = fileVersionInfo.FileVersion;
                //MessageBox.Show($"assemblyFileVersion:{assemblyFileVersion}、fileFileVersion:{fileFileVersion}");
                return assemblyFileVersion == fileFileVersion;
            }
            catch (Exception ex)
            {
                return true;
            }
        }
    }

 

posted @ 2025-09-19 16:30  苏秦与真相  阅读(3)  评论(0)    收藏  举报