Tag: 卸载

使用WMI卸载程序

我想使用WMI卸载程序,但是我收到此错误:“访问被拒绝。(HRESULTexception:0x80070005(E_ACCESSDENIED))”。 使用相同的ConnectionOptions安装它没有任何问题。 管理员用户是否有可能安装软件但不能卸载? 如果是这样,我该如何编辑它们? Main() { ConnectionOptions oConn = new ConnectionOptions(); oConn.Impersonation = ImpersonationLevel.Impersonate; oConn.EnablePrivileges = true; oConn.Username = “Administrator”; oConn.Password = “password”; System.Management.ManagementScope oMs = new System.Management.ManagementScope(“\\\\192.168.14.128\\root\\cimv2”, oConn); Uninstall(oMs, “\\\\192.168.14.128\\root\\cimv2:Win32_Product.IdentifyingNumber= \”{926C96FB-9D0A-4504-8000-C6D3A4A3118E}\”,Name=\”Java DB 10.4.2.1\”,Version=\”10.4.2.1\””); } static void Uninstall(ManagementScope oMs, string path) { if (!oMs.IsConnected) oMs.Connect(); ManagementObject product = new ManagementObject(path); if ((product != null) && […]

从GAC中卸载C#代码

如何从C#应用程序中卸载GAC。 我无法从GAC卸载特定的exe和DLL。 这是在C#中卸载GAC的正确方法吗? public void RemoveAssembly(string ShortAssemblyName, string PublicToken) { AssemblyCacheEnum AssembCache = new AssemblyCacheEnum(null); string FullAssembName = null; for (; ; ) { string AssembNameLoc = AssembCache.GetNextAssembly(); if (AssembNameLoc == null) break; string Pt; string ShortName = GetAssemblyShortName(AssembNameLoc, out Pt); if (ShortAssemblyName == ShortName) { if (PublicToken != null) { PublicToken = PublicToken.Trim().ToLower(); if […]

Visual Studio安装项目:如何强制卸载程序以管理员模式运行?

我已经创建了一个Visual Studio安装项目,我为我的主应用程序创建了一个安装程序类。 在此安装程序类中,我重写了卸载程序function以清除我的应用程序创建的额外文件夹。 这在Windows XP中运行良好,但在Windows 7中没有,因为我认为它与UAC有关。 如何强制卸载程序提升权限? 我在另一篇文章中提到了这个问题,但我并不清楚我的意图。 我找到了这些链接,但我不知道它是否相关: http://msdn.microsoft.com/en-us/library/aa370852.aspx http://msdn.microsoft.com/en-us/library/aa370134%28v=VS.85%29.aspx 更新(11/7/2011) 我发现了Orca ,它可用于修改msi安装应用程序属性,但没有适当的文档,(或示例/教程)。 以下是我为解决此问题所采取的步骤: 用Orca打开appInstal.msi。 从左表中单击customAction 在所有行的末尾添加一个新条目(通过双击一个新行) 键入Elevate_Install_Uninstall for Action名称,输入3072表示类型 为目标键入ALL并将Source保留为空 希望这有助于某人/

如何在c#中使用其产品代码卸载MSI

我知道我们可以通过传递命令参数来使用其MSI卸载Windows应用程序,如下所示, Process p = new Process(); p.StartInfo.FileName = “msiexec.exe”; p.StartInfo.Arguments = “/x \”C:\\MyApplication.msi\”/qn”; p.Start(); 但我想知道的是如何在不使用MSI的情况下卸载应用程序? 在上面的场景中,我应该在特定的位置安装MSI来卸载这个应用程序,如果我可以使用产品代码解压缩,那么我就不需要在目标机器上安装MSI。