为什么程序集的版本是相同的?

时间:2014-02-17 20:18:29

标签: c# .net reflection .net-assembly appdomain

我们有一个应用程序,它查看共享文件夹以获取更新版本的应用程序。

我们提出以下代码来检查程序集版本是否不同(在客户端运行,以及在服务器共享文件夹中运行)

            //Obtains the current version of the Entry Assembly
            versaoAtual = Assembly.GetEntryAssembly().GetName().Version;

            //Path for the the new Assembly at a shared folder at server
            string arquivoServidor = Path.Combine(maquinaCliente.DiretorioDeploy, @"SAMEDigital.Client.exe");

            //If the file does not exist, the version is the same, so it would not be updated
            if (!File.Exists(arquivoServidor))
            {
                versaoNova = versaoAtual;
            }
            else
            {
                //Creates a temporary AppDomain for loading the server assembly
                AppDomain ad = AppDomain.CreateDomain("TempAppDomainSAMEDigitalClient");

                //Obtains the server version of the server assembly
                versaoNova = ad.Load(File.ReadAllBytes(arquivoServidor)).GetName().Version;

                //Unload the the temporary AppDomain 
                AppDomain.Unload(ad);
            }

但结果不是预期的,两个变量都显示相同的版本(实际运行的版本)。这不应该吗?当我们获得正在运行的程序集的版本,然后加载另一个程序集并获取该程序集的版本时。

请有人澄清我们做错了什么吗?

提前致谢。

0 个答案:

没有答案