我如何得到一个程序集的版本,而无需加载呢?加载、版本、程序

2023-09-02 01:50:12 作者:哥的伤疤拜你所赐

一个大计划的一个小功能检查文件夹中的组件,并取代了过期组件的最新版本。要做到这一点,它需要读取现有的汇编文件的版本号,而无需实际装载这些组件到执行的进程。

One small function of a large program examines assemblies in a folder and replaces out-of-date assemblies with the latest versions. To accomplish this, it needs to read the version numbers of the existing assembly files without actually loading those assemblies into the executing process.

推荐答案

我发现下面的in这篇文章。

using System.Reflection;
using System.IO;

...

// Get current and updated assemblies
AssemblyName currentAssemblyName = AssemblyName.GetAssemblyName(currentAssemblyPath);
AssemblyName updatedAssemblyName = AssemblyName.GetAssemblyName(updatedAssemblyPath);

// Compare both versions
if (updatedAssemblyName.Version.CompareTo(currentAssemblyName.Version) <= 0)
{
    // There's nothing to update
    return;
}

// Update older version
File.Copy(updatedAssemblyPath, currentAssemblyPath, true);
 
精彩推荐
图片推荐