Tag: windows installer

如何在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。

如何在Windows安装程序中处理复选框控件?

我正在使用Visual Studio 2008来创建一个安装项目。 我想创建一个文件,其中包含用户在安装过程中选中的复选框的值。 如何以及在何处编写相同的代码? 我是Windows安装程序的新手。 请提供相同的指示。 先感谢您。

获取已安装产品列表c#

要安装/卸载/更新我们的软件,我们的自定义安装程序使用WindowsInstaller.Installer.Products从Windows注册表中获取已安装产品的列表。 在某些客户端计算机上,未知软件可能会在注册表“ HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Installer \ Products ”中添加一个新条目,其名称类似于“ABCD”。 这导致WindowsInstaller.Installer.Products抛出exception。 我可以通过手动将注册表项条目添加到名为“test”的“ HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Installer \ Products ”中来创建此方案。 如果我将测试重命名为新的GUID,那么模拟的问题就会得到解决。 你能建议任何可能的解决方法/解决方案吗? 使用MSIINV.exe工具会很困难,因为这是第三方工具,但这似乎有所帮助。

如何在C#中找到已安装应用程序的升级代码?

我正在使用WIX工具集中的Windows Installer API的C#包装器。 我使用ProductInstallation类来获取有关已安装产品的信息,例如产品代码和产品名称。 例如 产品名称 – “我的测试应用” 产品代码 – {F46BA620-C027-4E68-9069-5D5D4E1FF30A} 产品版本 – 1.4.0 在内部,这个包装器使用MsiGetProductInfo函数。 不幸的是,此function不会返回产品的升级代码。 如何使用C#检索已安装应用程序的升级代码?

我可以从C ++或C#程序中提取MSI包的内容吗?

比方说,如果我有一个MSI安装文件,我可以从C#或C ++程序中提取其内容而不安装它吗?

在.NET自定义操作中检测静默安装

如何检测安装是否以静默模式运行? 我有一个自定义应用程序,我添加了一个.msi安装项目。 我使用/ qb开关运行.msi文件,并在我的自定义安装程序c#代码中,我希望能够检测到这一点。 编辑:nobugs说测试UILevel属性。 如何从派生自System.Configuration.Install.Installer类的类访问UILevel属性?

如何使System.Configuration.Install.Installer从安装项目中获取变量?

我的解决方案中有2个项目 Windows服务 它的安装项目 我需要我的ProjectInstaller : System.Configuration.Install.Installer的方法调用OnAfterInstall来从安装项目中获取ProductName 。 我怎么做?

如何在c#中读取MSI属性

我想在桌面应用程序中读取C#中的MSI属性。我使用以下代码: public static string GetMSIProperty( string msiFile, string msiProperty) { string retVal= string.Empty ; Type classType = Type.GetTypeFromProgID(“WindowsInstaller.Installer”); Object installerObj = Activator.CreateInstance(classType); WindowsInstaller.Installer installer = installerObj as WindowsInstaller.Installer; Database database = installer.OpenDatabase(“C:\\DataP\\sqlncli.msi”,0 ); string sql = String.Format(“SELECT Value FROM Property WHERE Property='{0}'”, msiProperty); View view = database.OpenView(sql); Record record = view.Fetch(); if (record != null) […]

如何创建不需要管理员访问权限的Windows安装程序MSI

我已经创建了一个MSI Windows安装程序,它安装了一个插件,我为我办公室使用的一个软件编写了这个插件。 但是,此处的许多用户对其计算机没有管理员权限,并且IT部门因为必须为其安装插件而感到沮丧。 我的安装程序除了将几个文件复制到用户本来可以访问复制文件的位置之外什么都不做。 有没有办法修改我的安装项目,以便生成的MSI不需要管理员权限?

如何将命令行参数传递给MSI安装程序

现在我的团队使用Windows应用程序(C#)在一个项目中工作。 我们使用MSI Installer来创建安装。 我不知道如何从MSI文件和Setup.exe文件传递命令行参数。 例如 setup.msi username = demo password = pass setup.exe username = demo password = pass 请提出一个很好的例子/参考