我想检查系统中是否已安装特定文件。使用C#验证已安装的应用程序
我想检查这个特定的vcredist_x86.exe
是否已经安装在机器上,如果没有安装它。
下面的代码是我的方法,任何人都可以告诉我我在做什么是对的或错的。
public Form1(bool isSilent, bool isXmlConfig)
{
this.isSilent = isSilent;
this.isXmlConfig = isXmlConfig;
x86 = !Environment.Is64BitOperatingSystem;
string regKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
using (Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(regKey))
{
if (key != null && key.GetSubKeyNames().Any(keyName => key.OpenSubKey(keyName).GetValue("DisplayName") == "My App's Display Name"))
Process.Start("vcredist_x86.exe");
}
MyExtract();
if (!isSilent)
Visible = ShowInTaskbar = false;
}
private void MyExtract()
{
string zipToUnpack = @"N:\Tools\DATABASE\CACHE";
string unpackDirectory = @"N:\Tools\DATABASE\CACHE\OUTPUT\";
using (ZipFile zip1 = ZipFile.Read(zipToUnpack))
{
// here, we extract every entry, but we could extract conditionally
// based on entry name, size, date, checkbox status, etc.
foreach (ZipEntry e in zip1)
{
e.Extract(unpackDirectory, ExtractExistingFileAction.OverwriteSilently);
}
}
Process.Start(unpackDirectory);
}
你得到一个错误?它是做你期望的吗?它做错了什么? – 2012-07-25 13:20:03
他在问他的方法是否正确。代码*可能*适用于他。 – Ruel 2012-07-25 13:21:26
@ Alex Mendez:我没有收到任何错误,因为我没有测试过它。我想在这里做什么,我想检查特定的.exe是否已经安装,如果没有,然后安装它。 – linguini 2012-07-25 13:24:30