【发布时间】:2010-09-13 11:37:32
【问题描述】:
这个问题与其说是编程相关,不如说是与部署相关。
我发现自己与公司中的团队进行了很多交谈,他们的工作是维护我们的生产 Windows 服务器并在其上部署我们的代码。出于法律和合规性原因,我对服务器没有直接的可见性或任何控制权,因此我可以判断其中安装了哪些 .NET 版本的唯一方法是通过我给该组的指示。
到目前为止,我能想到的所有方法都可以判断安装了哪些版本(检查与 1.1 或 2.0 匹配的管理工具,检查“添加/删除程序”列表中的条目,检查c:\Windows\Microsoft.NET 下的目录存在)是有缺陷的(我已经看到至少一台机器有 2.0 但在管理工具下没有 2.0 条目 - 而且该方法告诉你关于 3.0+ 的任何信息,“添加/删除Programs”列表可能与现实不同步,目录的存在并不一定意味着什么)。
鉴于我通常需要提前知道这些东西已经到位(发现“哎呀,这个没有你需要的所有版本和服务包”在维护窗口短的情况下并不能很好地工作)并且我必须“通过代理”进行检查,因为我无法直接进入服务器,有什么万无一失的方法来判断生产 Windows Server 上安装了哪些版本的 .NET?最好是使用框架安装的一些内在方法来这样做,因为它会更快并且不需要加载某种实用程序,而且如果框架没有正确安装但仍然有文件(即,有一个目录和 gacutil.exe 是 inded 那里,但该版本的框架并没有真正“安装”)
编辑:在没有一种内置于框架中的好的万无一失的内在方法来做到这一点的情况下,有没有人知道一个好的、轻量级、无需安装的程序可以找到这出来了?我可以想象有人可以轻松编写一个,但如果已经存在,那就更好了。
【问题讨论】:
-
我不久前研究过这个问题,但找不到明确的方法来做到这一点。我很想看看我们得到什么答案。
-
How to detect what .NET Framework versions and service packs are installed? 的可能重复 - 规范问题(即使它比它小 17 天)。
标签: .net windows deployment