微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用C#如何检测是否安装了Windows Installer 4.5

我试图找出最有效的方式来确定Windows Installer 4.5是否安装在一台机器上。

我有一个2.0应用程序(目前无法转换为3.5),我们正在从MSDE升级sql 2008 Express。 2008 Express的一个要求是Windows Installer 4.5安装在机器上。 此应用程序全局部署到内部networking和外部networking上的机器。

我宁愿运行batch file或C#代码来确定安装程序版本。

请让我知道你推荐的方法,并提供一些代码(或代码链接)。

ShowDialog返回types:窗体与窗口

CompileAssemblyFromDom抛出FileNotFoundException

在单线程上调用WaitHandle

应用程序当前closuresclosures窗口提示

有没有一个WPF控件,将显示类似资源pipe理器的视图中的文件列表?

谢谢!

无法将文本从控制台输出到文本文件

带有ToolStripStatusLabel的UIAutomation

将选定的列表框(绑定)项目保存到c#中的数组

如何使用C#Windows应用程序将字节中的图像写入MS WORD

来自.NET的关于文件path的奇怪行为

您可以在系统目录中读取msi.dll库的文件版本:

using System.Diagnostics; using System.IO; public bool IsWindowsInstaller45Installed() { FiLeversionInfo info; string fileName = Path.Combine(Environment.SystemDirectory,"msi.dll"); try { info = FiLeversionInfo.GetVersionInfo(fileName); } catch (FileNotFoundException) { return false; } return (info.FileMajorPart > 4 || info.FileMajorPart == 4 && info.FileMinorPart >= 5); }

检查您的System32目录中的MSI.DLL文件的版本。

您应该能够使用GetFiLeversionInfo或GetFiLeversionInfoEx获取版本号。

此MSDN文章有一些示例代码: 不安全的代码教程

就像Ho1所说的那样,你可以在System32中使用MSI.dll的版本,但是你不需要P / Invoke就可以使用System.Diagnostics中的FiLeversionInfo类。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐