Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在启动时确定应用程序的客户端版本_C#_Version - Fatal编程技术网

C# 在启动时确定应用程序的客户端版本

C# 在启动时确定应用程序的客户端版本,c#,version,C#,Version,问题: 我们有一个C#应用程序,.NET3.5,在客户端计算机上手动更新。不要问,我们不能一键部署 如果创建了新版本,但客户端尚未更新,我想提醒客户端(启动时)应用程序已过期,必须在继续之前获取新版本 我感兴趣的是其他人可能使用了什么方法来解决相同的问题(限制客户端使用旧版本) 谢谢-Glenn您需要创建一个web服务,该服务将返回当前的应用程序版本。该服务必须安装在可供客户端调用的位置 然后,您需要向服务添加一个调用,并根据服务的版本检查正在运行的应用程序版本。我们的应用程序已连接到数据库,我

问题:

我们有一个C#应用程序,.NET3.5,在客户端计算机上手动更新。不要问,我们不能一键部署

如果创建了新版本,但客户端尚未更新,我想提醒客户端(启动时)应用程序已过期,必须在继续之前获取新版本

我感兴趣的是其他人可能使用了什么方法来解决相同的问题(限制客户端使用旧版本)


谢谢-Glenn

您需要创建一个web服务,该服务将返回当前的应用程序版本。该服务必须安装在可供客户端调用的位置


然后,您需要向服务添加一个调用,并根据服务的版本检查正在运行的应用程序版本。

我们的应用程序已连接到数据库,我们在应用程序启动时确保应用程序的版本与数据库中记录的版本相匹配。如果不匹配,将向用户显示一条消息。如果你的应用程序没有连接到DB,我想它可以通过WCF服务获取最新版本。我见过人们只是从共享驱动器中检索文件并从中读取值。这要求所有用户都可以使用共享的UNC路径,这并不总是很方便。

您是否使用ClickOnce分发应用程序?如果是,则可以在发布之前指定所需的最低版本

如果没有,您可以管理可执行文件的版本,并在启动时进行检查。比如:

Assembly assembly = Assembly.GetExecutingAssembly();
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location);
string version = fvi.FileVersion;

它是客户机-服务器应用程序吗?您在登录之前是否连接到服务器?我在描述中称之为“一键式”,但不使用“一键式”或“一键式”。ClickOnce不仅用于部署应用程序,还用于向最终用户分发应用程序。谢谢Michael-我以前也使用过这种方法。在这种情况下,我希望在连接到目标数据库之前验证客户机。GlennInteresting方法-除了验证程序集之外,我还将检查此选项。简单地验证程序集的问题在于,您还没有可以与之进行比较的东西。ThanksAlexander—我将研究如何将web服务方法与客户端验证相结合。一个问题是我们跟踪TeamCity提供的客户构建。谢谢你的建议。格伦