我想创建一个设置来部署软件。我的第一个安装窗口是检查该计算机中是否安装了主软件(其他软件),因为我需要在主软件的安装文件夹中添加一个支持文件。
在 Visual Studio 设置部署项目中这可能吗?
我想创建一个设置来部署软件。我的第一个安装窗口是检查该计算机中是否安装了主软件(其他软件),因为我需要在主软件的安装文件夹中添加一个支持文件。
在 Visual Studio 设置部署项目中这可能吗?
下面的代码对我来说工作正常
/// <summary>
/// To check software installed or not
/// </summary>
/// <param name="controlPanelDisplayName">Display name of software from control panel</param>
private static bool IsApplictionInstalled(string controlPanelDisplayName)
{
string displayName;
RegistryKey key;
// search in: CurrentUser
key = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall");
if (null != key)
{
foreach (string keyName in key.GetSubKeyNames())
{
RegistryKey subkey = key.OpenSubKey(keyName);
displayName = subkey.GetValue("DisplayName") as string;
if (controlPanelDisplayName.Equals(displayName, StringComparison.OrdinalIgnoreCase) == true)
{
return true;
}
}
}
// search in: LocalMachine_32
key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall");
if (null != key)
{
foreach (string keyName in key.GetSubKeyNames())
{
RegistryKey subkey = key.OpenSubKey(keyName);
displayName = subkey.GetValue("DisplayName") as string;
if (controlPanelDisplayName.Equals(displayName, StringComparison.OrdinalIgnoreCase) == true)
{
return true;
}
}
}
// search in: LocalMachine_64
key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall");
if (null != key)
{
foreach (string keyName in key.GetSubKeyNames())
{
RegistryKey subkey = key.OpenSubKey(keyName);
displayName = subkey.GetValue("DisplayName") as string;
if (controlPanelDisplayName.Equals(displayName, StringComparison.OrdinalIgnoreCase) == true)
{
return true;
}
}
}
// NOT FOUND
return false;
}
您安装的每个软件都必须在注册表中创建条目。因此您可以从 Visual Studio 安装项目中读取注册表中的特定条目。
从注册表中检索值
如何从注册表中检索您计算机的MediaPath值,
您的计算机的 MediaPath 值位于以下注册表子项下: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion 您可以使用启动条件检索此值。为此,请按照下列步骤操作:
默认情况下,会添加 Search for RegistryEntry1。
当您运行安装项目时,MediaPath 注册表值被检索到您的 MEDIA_PATH 属性。
更多见野兔