综合应用WPF/WCF/WF/LINQ之十八:检测客户端是否安装有.NET 3.0-阿里云开发者社区

开发者社区> 余二五> 正文

综合应用WPF/WCF/WF/LINQ之十八:检测客户端是否安装有.NET 3.0

简介:
+关注继续查看
 为了在运行XBAP程序之前,有一个检测客户端是否安装有.NET 3.0的机会,我们才不让用户直接访问Eallies.OA.UI.xbap文件,而是先访问一个Default.htm文件(当然,另外一个原因是网站的默认启动页面中包含这个文件名)。
  Default.htm文件的内容如下,如果通过检测,则跳转到Eallies.OA.UI.xbap文件;否则弹出了一个警告对话框,当然,您也可以更改得更好,让程序自动去下载并安装.NET 3.0.
  另外,如果客户端安装的是.NET 3.0测试版,则版本号有可能不是3.0.04506,您也可以对这个程序进行改造,让程序支持多个版本的.NET 3.0。
    1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    2 <html xmlns="http://www.w3.org/1999/xhtml" >
    3 <head>
    4     <title>Eallies OA</title>
    5     <script language="javascript" type="text/javascript">
    6     <!--
    7         var strRuntimeVersion = "3.0.04506";
    8 
    9         function CheckVersion()
   10         {
   11             if (HasRuntimeVersion(strRuntimeVersion) == false)
   12             {
   13                 alert("This machine does not have correct version of .NET Framework 3.0 Runtime.");
   14 
   15                 return false;
   16             }
   17 
   18             return true;
   19         }
   20 
   21         //
   22         // Retrieve the version from the user agent string and compare
   23         // with specified version.
   24         //
   25         function HasRuntimeVersion(version)
   26         {
   27             var userAgentString = navigator.userAgent.match(/.NET CLR [0-9.]+/g);
   28 
   29             if (userAgentString != null)
   30             {
   31                 for (var i = 0; i < userAgentString.length; ++i)
   32                 {
   33                     if (Compare(this.GetVersion(version), this.GetVersion(userAgentString[i])) <= 0) return true;
   34                 }
   35             }
   36 
   37             return false;
   38         }
   39 
   40         //
   41         // Extract the numeric part of the version string.
   42         //
   43         function GetVersion(versionString)
   44         {
   45             var numericString = versionString.match(/([0-9]+)\.([0-9]+)\.([0-9]+)/i);
   46 
   47             return numericString.slice(1);
   48         }
   49 
   50         //
   51         // Compare the 2 version strings by converting them to numeric format.
   52         //
   53         function Compare(version1, version2)
   54         {
   55             for (var i = 0; i < version1.length; ++i)
   56             {
   57                 var number1 = new Number(version1[i]);
   58                 var number2 = new Number(version2[i]);
   59 
   60                 if (number1 < number2) return -1;
   61                 if (number1 > number2) return 1;
   62             }
   63 
   64             return 0;
   65         }
   66     -->
   67     </script>
   68 </head>
   69 <body>
   70     <script language="javascript" type="text/javascript">
   71 
   72         if (CheckVersion() == true)
   73         {
   74             document.location.href = "Eallies.OA.UI.xbap";
   75         }
   76 
   77     </script>
   78 </body>
   79 </html>




本文转自 Eallies 51CTO博客,原文链接:http://blog.51cto.com/eallies/79024,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
运维编排场景系列----检测MFA功能状态
应用场景 Multi-Factor Authentication (MFA)是一种简单有效的最佳安全实践方法,它能够在用户名和密码之外再额外增加一层安全保护。当一个主账号下拥有多个子账号时,为了检测主账号下的每个子账户是否开启MFA功能,需要每天或自定义时间去做定时检测,并将未开启MFA功能的用户发送给指定的钉钉用户。
2136 0
YOLO: 3 步实时目标检测安装运行教程 [你看那条狗,好像一条狗!]
封面图是作者运行图,我在 ubuntu 环境下只有文字预测结果。 Detection Using A Pre-Trained Model 使用训练好的模型来检测物体 运行一下命令来下载和编译模型 git clone https://github.
1206 0
Windows2003 + IIS6 安装.Net FrameWork 4.0 兼容早期版本的测试
看到文档说.net4的框架可以向下兼容2.0、3.0、3.5这几个版本,觉得是一件好事,以后服务器上就不用费时费力的安装 2.0、3.5之类的框架了。但是又觉得奇怪,2.0和3.5的框架都是很大的,为什么现在这个小得多的4.0能同时运行 前几个版本的程序呢?是不是因为 win7上自带了3.5? 那win2003上会怎么样呢?      为了搞清楚这个问题,我重新装了一台全新的 win2003 ,系统装好后,添加 IIS。
901 0
WPF关闭应用程序方法
原文:WPF关闭应用程序方法  很多人认为关闭应用程序应该很简单,例如WindowsForm里一个Application.Exit();方法就可以解决问题,但在WPF里面可别滥用,因为WPF里Application类没有该方法,倒是有一个Exit的事件驱动,在WPF应用程序里面关闭程序讲究很多: ...
871 0
控制台安装跟检测Microsoft.Net Framework
1、检测 每一个版本的.Net Framework的安装过程都会在Windows目录下的\Microsoft.NET\Framework目录中生成一个子目录(安装目录)。 比如说,假设Windows目录在C盘且不曾在安装OS时重命名过Windows目录,那么.Net Framework 3.5的安装目录应该是: C:\Windows\Microsoft.NET\Framework\v3.5 在这个目录下应该有一个该版本的MSBuild.exe,我们执行 MSBuild /version 应该能得到版本信息。
1054 0
dotnet检测类型是否为泛型
原文:dotnet检测类型是否为泛型 private static string GetTableName(Type type) { //检测类型是否为泛型 if (type.
533 0
.net framework 3.5 安装失败解决方案
出错提示:windows功能无法安装以下功能:.NET Framework 3.5(包括.NET 2.0和3.0) 安装方式1 1.png 安装方式2 运行网上下载的.net framework 3.5安装包 解决方案 在出现无法安装这种情况的时候,LZ当初尝试了各种方法,百度了很多内容,但排在前面的一些方法,不是盗版别人的文章就是上文不接下文,还有一些就是没有说清楚,给出的解决方法看不太懂,在这里我把内容整理一下,用简单的方式让人类可以听懂。
1848 0
9.3、Libgdx手势检测
(官网:www.libgdx.cn) 触摸屏在输入的基础上增加了手势检测,比如两个手指实现缩放,单击或双击屏幕,长按屏幕等。 Libgdx提供了GestureDetector来帮助你检测以下手势: touchDown:用户触摸屏幕。
644 0
+关注
20382
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载