`
starnc
  • 浏览: 145221 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

C#读取exe版本号

    博客分类:
  • .NET
 
阅读更多

 

//通常我们做软件自动更新,需要比较新文件与旧文件的版本号,如果新文件的版本号比旧文件高,就替换旧文件。
//(版本号一般是在Visual Studio的程序信息里定义)如果使用以下的方法:

using System.Reflection;
using System.IO;
...
Assembly currentAssembly = Assembly.LoadFile(currentAssemblyPath);
Assembly updatedAssembly = Assembly.LoadFile(updatedAssemblyPath);
AssemblyName currentAssemblyName = currentAssembly.GetName();
AssemblyName updatedAssemblyName = updatedAssembly.GetName();
// 比较版本号
if (updatedAssemblyName.Version.CompareTo(currentAssemblyName.Version) <= 0)
{
    // 不需要更新
    return;
}

// 更新
File.Copy(updatedAssemblyPath, currentAssemblyPath, true);
//旧版本被加载了,下面的File.Copy就无法替换旧文件。
//不用加载EXE就可以判断该EXE版本的方法如下:

using System.Reflection;
using System.IO;
...
AssemblyName currentAssemblyName = AssemblyName.GetAssemblyName(currentAssemblyPath);
AssemblyName updatedAssemblyName = AssemblyName.GetAssemblyName(updatedAssemblyPath);
// 比较版本
if (updatedAssemblyName.Version.CompareTo(currentAssemblyName.Version) <= 0)
{
    // 不需要更新
    return;
}
// 更新
File.Copy(updatedAssemblyPath, currentAssemblyPath, true);
分享到:
评论

相关推荐

    获取exe和dll文件的版本号

    本篇文章将深入探讨如何使用C#语言来获取指定文件夹及其子文件夹下所有EXE和DLL文件的版本号。 首先,我们需要了解什么是文件版本号。在Windows操作系统中,每个可执行文件(.exe和.dll)都有一个关联的资源信息,...

    C# .NET写的基于WinIO映射内存读取本地BIOS版本(含源码)

    C#通过WinIO读取BIOS的版本号 可用于工控行业的测试 程序包里有自己封装好的函数库,里面有对WinIO的操作,使用起来比较简单 这支程序可直接使用,用于工厂测试产品烧录的BIOS版本号 提供了完整的源码,使用时加个...

    C#获取安卓APK各类信息

    本篇文章将深入探讨如何使用C#获取安卓APK的各类信息,如版本号、版本名和包名等。 首先,要获取安卓APK信息,我们需要一个能够读取APK文件的库。在C#中,我们可以使用SharpCompress库,这是一个功能强大的开源压缩...

    C#实现DXF文件读取写入

    2. **写入头信息**:写入DXF文件的基本信息,如版本号、单位等。 3. **写入段**:按照DXF格式的顺序,将数据结构转化为文本或二进制数据并写入文件。 4. **写入实体**:逐一将图形实体写入文件,确保遵循DXF文件的...

    c#版读取MP3详细信息

    下面将详细阐述如何通过C#读取MP3的艺术家、专辑和歌曲长度等信息。 首先,我们需要了解MP3文件的元数据存储方式。MP3文件的元数据通常包含在ID3标签中,这是一种标准化的格式,用于存储音频文件的附加信息,如标题...

    c# 获取程序集版本号

    在C#编程中,程序集版本号是标识软件版本的重要组成部分。它由四个部分组成:主版本、次版本、内部版本和修订号。这四个数字通常以`Major.Minor.Build.Revision`的形式表示,例如`1.2.3.4`。在.NET框架中,可以使用`...

    VS编译发布根据SVN自动更新版本号

    版本号通常由主版本号、次版本号、修订号组成,例如1.2.3,其中1为主版本,2为次版本,3为修订或补丁版本。每次提交代码到SVN仓库时,都会自动增加修订号,反映代码的最新状态。 要让VS在编译时根据SVN自动更新版本...

    C# 导入Excel读取图片上传

    右键点击项目,选择“添加引用”,然后在COM选项卡中找到Microsoft Excel xx.x Object Library(xx.x代表你的Excel版本号)。 2. 使用Excel对象模型:创建Excel应用程序实例,打开Excel文件,并获取工作表。例如: ...

    C#读取U盘序列号。。。。。。。。。。。

    总结起来,C#读取U盘序列号的关键在于利用WMI查询和处理设备信息。通过遍历逻辑磁盘到分区的映射以及物理磁盘信息,我们可以准确地找到U盘并获取其序列号。这个过程涉及到了设备管理、字符串处理和WMI查询等多个方面...

    c#读取flash(swf)文件容量和尺寸

    2. 读取头部:使用`FileStream.Read()`方法读取前6字节以验证文件类型,然后读取第7字节的版本号。 3. 获取文件大小:对于小于16MB的文件,直接读取文件头的后3字节来获取文件大小。如果超过16MB,需要读取剩余部分...

    C#读取ipa文件方法

    总结来说,通过C#读取IPA文件并解析Info.plist,我们可以获取到iOS应用的多种信息,包括但不限于应用名称、版本号。这个过程涉及文件的压缩与解压缩、XML解析以及文件操作等技术,对提升C#编程技能和理解iOS应用结构...

    对组态王OPC服务器值的读取c#版本

    /// 为用户写入的其要取的变量的索引号,其为ReadItemNo返回的范围内的某个数&lt;/param&gt; /// 返回错误码,见附录&lt;/returns&gt; /// &lt;/summary&gt; [DllImport("kingvewcliend.dll")] //[SecurityPermission...

    C#不用ArEngine读取.shx文件

    3. **读取头信息**:.shx文件的前100字节是文件头,通常包含版本信息、文件类型等。这部分可以忽略,因为我们的目标是获取形状的记录号和长度。 4. **遍历记录**:循环读取文件中的每一条记录。每个记录由8个字节...

    Halcon联合C#读取图像

    安装完成后,Halcon的.NET组件会包含在Halcon安装目录下的`bin`子目录中,通常为`HalconXX\bin\dotnet`(XX代表Halcon的版本号)。 接下来,我们需要在C#项目中引用Halconc.DLL。在Visual Studio中,右键点击解决...

    c#读取excel文件

    2. **引用库**:在你的C#项目中,右键点击“引用”并选择“添加引用”,然后在COM组件中找到“Microsoft Excel xx.x Object Library”(xx.x代表你的Excel版本号),选中后点击确定。 3. **使用Excel对象模型**:在...

    C#简单的项目版本号编辑器

    本项目“C#简单的项目版本号编辑器”就是针对这一需求而设计的,它提供了一个便捷的工具,用于批量修改指定目录下所有`assembly.cs`文件中的版本信息。 首先,我们需要了解什么是`assembly`。在.NET中,`assembly`...

    C#实现S7协议读取西门子plc数据

    一个常见的选择是开源库如`libnodave`或`C#`版本的`Snap7`。这些库提供了与西门子PLC进行通信所需的接口和功能。安装完成后,你可以开始编写代码来连接到PLC。 以下是一个基本的步骤概述: 1. **建立连接**:使用...

    C#实现搜索出本机安装的AutoCAD

    - **获取AutoCAD版本信息**:注册表中的键值可能包括安装路径、版本号、产品ID等,可以读取这些信息以确定安装的AutoCAD版本。 4. **.NET程序随CAD启动自动加载**: - **COM组件自动化**:AutoCAD支持通过COM...

    C#通过NModBus读取modbus设备上的温湿度

    首先,确保你已经安装了Visual Studio(最新版本推荐),这是开发C#应用的集成开发环境。然后,你需要从NuGet包管理器中安装NModBus库,这样可以在项目中使用其功能。在VS中,右键点击解决方案资源管理器中的项目,...

    C#编写的Gerber查看器

    在项目中,`GMDO_V4.0`可能代表软件的版本号,暗示这是一个迭代多次、不断完善的项目。这样的命名方式通常意味着开发者在原有基础上进行了功能增强、性能优化或者错误修复。 除了基本的查看功能,一个完整的Gerber...

Global site tag (gtag.js) - Google Analytics