早些时候我们发布了一个应用程序。后来发布了一个新版本的应用程序,但具有不同的应用程序名称。但是这两个应用程序都将文件放在同一程序文件夹中。但是我们在卸载程序中列出了两个不同的版本。
现在我们想发布一个更新的版本。我们想从用户的电脑上卸载第一个版本。我怎样才能用c#实现这个目标。我们正在使用Windows 7 64位(应用程序是32位并安装在x86文件夹中)。
我没有应用程序设置既没有应用程序密钥
请帮帮我。
答案 0 :(得分:1)
如果您有安装程序项目,可以在安装程序属性中指定。
答案 1 :(得分:1)
如果您的应用程序无法检测到它的早期版本(不同名称),那么您可能应该从这两个应用程序干扰的地方删除数据。您可以使用File.Delete();
执行此操作,但如果这些文件位于Application没有权限的位置,则应强制它通过添加清单文件以管理员身份运行并替换该行。
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
答案 2 :(得分:0)
查看COM WindowsInstaller类。您需要添加对WindowsInstaller类的引用才能访问它。从这里,您可以浏览MSI并根据需要对其执行操作。我在我的后期构建中使用它来修改存档以修复Visual Studio的未记录的功能。
// Create an Installer instance
MsiInstaller = Activator.CreateInstance(Type.GetTypeFromProgID("WindowsInstaller.Installer")) as WindowsInstaller.Installer;
// Open the msi file for Read/Write
MsiDatabase = MsiInstaller.OpenDatabase(MsiFile.FullName, MsiOpenDatabaseMode.msiOpenDatabaseModeTransact);