如何检查exe的版本兼容性?

Posted

技术标签:

【中文标题】如何检查exe的版本兼容性?【英文标题】:How to check the version compatibility of an exe? 【发布时间】:2011-07-21 21:56:41 【问题描述】:

如何比较服务器中的应用程序和客户端机器上安装的应用程序的版本?

【问题讨论】:

ClickOnce Deployment. 【参考方案1】:

有很多方法。

    服务器可以有一个公共 WCF 服务,它返回服务器上应用程序的版本。它可以从服务器上的 exe 文件中获取它(使用反射),或者只是解析一些服务器 xml 文件 - 可以由部署负责人更新。您可以在需要时在客户端应用中使用该服务。

    ClickOnce 部署使您无需考虑版本控制。您可以配置这样的部署,如果服务器上有新版本(将自动下载),应用程序将不会启动。

其他是连接到服务器方法和部署配置的变体。选择最适合您的。

不要忘记将其标记为正确,以防它适合您。

【讨论】:

感谢 LexRema 的回答。它真的帮助了我..你能发布其他方法吗? 例如,您可以将该 xml 放在某个公共服务器上,然后在 clent 上下载并解析它(这有点难看)。使用不是 WCF 而是使用 Webmethods 也会有所帮助。 我已在网络服务器中放置了一个 exe。这样我就可以将其下载到本地系统并运行该exe。如果我在该 exe 中更改了几乎没有增强的版本并放置在服务器中,那么每当我尝试运行 exe 时,它​​应该要求在服务器中下载更新的版本。我没有使用 Clickonce 部署.. 是的,但单击一次正是您所需要的。这将是最简单的一个。或者真的,首先检查服务器上的版本。 是的,感谢您的 cmets LexRema。我使用 ClickOnce 部署进行了验证。它真的做到了我需要的。它的美妙。非常感谢。【参考方案2】:

我认为您必须检查两台机器上运行的程序集信息。通过使用反射你可以做到。

http://bytes.com/topic/c-sharp/answers/262228-how-check-assemblys-version

或者在每台机器上试试这个。

使用 System.Reflection;

Assembly.GetExecutingAssembly().GetName().Version。 ToString()

【讨论】:

以上是关于如何检查exe的版本兼容性?的主要内容,如果未能解决你的问题,请参考以下文章

模块""可能与您正在运行的Windows版本不兼容。检查该模块是否与regsvr32.exe的x86或x64版

新升级的火狐浏览器每次启动都弹窗提示更新,检查附加插件和此版本的兼容性,如何关闭?已关闭了自动更新

火狐浏览器“正在检查您的附件组件与Firefox此版本的兼容性” -- 解决方案

模块mfc42d.dll可能与您正在运行的windows版本不兼容。检查该模块是否与regsvr32.exe的x86或x64版

tensorflow gpu 版本安装

在 Windows 中检查版本兼容性而不在命令提示符或任何命令行工具中编写任何命令?