Tag: windows installer

以编程方式检查MSI的ProductVersion

昨天我一直在搜索高低,寻找如何快速获得msi数据库的ProductVersion。 大多数情况下,我发现使用WindowsInstaller COM包装器,虽然这完成了工作,我想通过pinvoke使用msi.dll实现相同的结果。

有没有关于编写软件安装程序的权威文档?

我已经阅读了大量关于安装程序的文档,并没有遇到任何解释底层概念的好东西。 我遇到的大多数安装程序软件都基于相同的“数据库”结构,我根本就不了解。 各种产品附带的所有文档 – 例如WiX,InstallAware,Wise,InstallShield等都希望您能够理解这些基本概念[我不会得到],以便了解他们所谈论的内容。 任何人都可以指向我解释软件安装程序概念的文档方向,以便软件文档真正有意义吗?

应用程序安装程序:Microsoft数据库引擎2010在先决条件下不可用

我有一个为Windows 10开发的Windows窗体c-sharp应用程序。当我尝试制作安装程序时,我无法在“先决条件”下找到“microsoft database engine 2010”(对我的应用程序很重要),如下所示: 我不希望我的客户单独下载并安装它。 那么有没有办法生成一个安装程序,可以安装完整的软件和microsoft数据库引擎2010(如果它还没有安装在系统上)?

复制到另一个位置时C#Debug文件夹不运行exe

复制到其他位置时,我的桌面应用程序的调试(或发布)文件夹不运行exe。 它没有发出任何错误,只是将系统挂起一两秒,但直接恢复正常,好像什么都没有运行一样。 Visual Studio 2015是否也在Debug的上层创建了依赖项? 我使用Wix创建的安装程序没有运行预期的exe,我认为这是Wix的问题。 但后来我通过在一个临时子文件夹中复制完整的Debug文件夹来测试它,并且应用程序甚至没有从那里运行。 只有在Debug文件夹以外的其他位置存在依赖项时才会发生这种情况(因为系统资源(dll)是从C:驱动器的绝对路径访问的,因此它们始终可用。

.Net中的自定义安装程序显示安装程序后面的表单

[RunInstaller(true)] public partial class Installer1 : Installer { public Installer1() { InitializeComponent(); } public override void Install(System.Collections.IDictionary stateSaver) { base.Install(stateSaver); } private void Installer1_AfterInstall(object sender, InstallEventArgs e) { Form1 topmostForm = new Form1(); topmostForm.BringToFront(); topmostForm.TopMost = true; topmostForm.ShowDialog(); } } 我需要在默认的Windows Installer UI前面显示topmostForm。 以上是我用于创建表单的CustomAction中的示例代码。 设置TopMost属性或使用ShowDialog没有帮助。 有没有其他解决方案可以使我的表格成为最顶级和最集中的?

Windows应用程序启动错误exception代码:0xe0434352

我是启动Windows应用程序然后应用程序未启动。 错误exception代码:0xe0434352我从EventViewer发现以下错误。 Application_develop在Visual Studio 2010中,启动错误 Application: POSBarcode.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.Xml.XmlException at System.Xml.XmlTextReaderImpl.Throw(System.Exception) at System.Xml.XmlTextReaderImpl.ParseDocumentContent() at System.Xml.XmlTextReaderImpl.Read() at System.Xml.XmlTextReader.Read() at System.Configuration.XmlUtil..ctor(System.IO.Stream, System.String, Boolean, System.Configuration.ConfigurationSchemaErrors) at System.Configuration.BaseConfigurationRecord.InitConfigFromFile() Exception Info: System.Configuration.ConfigurationErrorsException at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean) at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(System.Configuration.ConfigurationSchemaErrors) at System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors() at System.Configuration.ClientConfigurationSystem.OnConfigRemoved(System.Object, System.Configuration.Internal.InternalConfigEventArgs) Exception Info: System.Configuration.ConfigurationErrorsException at System.Configuration.ClientConfigurationSystem.OnConfigRemoved(System.Object, […]

以编程方式安装MSI包

我想以编程方式从我的C#.NET应用程序安装一个给定的.msi包,最好使用我的应用程序指定的安装参数(如安装路径,拒绝crapware等)。 我做了一些搜索,但我还没有找到任何有用的东西。 最有希望的是这个主题 ,但我找不到任何关于Microsoft.Deployment.WindowsInstaller或WindowsInstaller.Installer文档。

Visual Studio安装程序项目中的其他安装程序

我正在尝试为我的项目创建一个安装。 我正在使用MS Access DataBase,并且需要使用Access DataBase Engine。 如果我从这里下载该引擎https://www.microsoft.com/en-us/download/details.aspx?id=54920并安装它,程序可以正常工作。 如何将该安装添加到我的安装中? 我使用的是Visual Studio 2015,C#和OLEDb。

WiX – 安装先决条件和第三方应用程序

我的C#应用​​程序有一个wix Windows Installer。 事情正在发挥作用,我能够安装和卸载应用程序。 但是我想要在我的应用程序中安装一些先决条件和其他第三方应用程序。 先决条件: Microsoft .NET Framework 4(x86和x64) – dotNetFx40_Full_x86_x64.exe SQL Server 2008 Express SQLEXPR_x64_ENU.EXE SQLEXPR32_x86_ENU.EXE SQL Server Compact 3.5 SP2 SSCERuntime-ENU.MSI SSCERuntime-ENU-x64.msi 第三方申请: TeamViewer – TeamViewer_Setup.exe 当然,我并不是在寻找所有先决条件和第三方应用程序的完整指南。 我只需要大家帮忙搞清楚我是如何将这些exe和msi设置嵌入到我的wix安装中的一部分。 此外,一些用于x64 ,一些用于x86 ,因此它应该足以处理操作系统版本和体系结构。 如何用wix实现这一目标。 我一直在互联网上搜索一段时间,似乎没有什么具体的东西适合我。 我需要确保如果没有安装这些应用程序,那么软件也应该不安装。 除此之外,如果已安装任何先决条件或第三方应用程序,则不应再次安装。 我想这可以使用一些wix工具完成,但我无法获得有关howto的任何具体说明。 编辑1 好的我安装了Microsoft .NET Framework 4 (x86 and x64) ,而我现在面临的问题是我无法安装SQL Server Compact 3.5 SP2 。 我正在逐一做事让我更清楚。 在这下我分享我的代码,以便人们可以查看: […]

如何在使用.NET安装期间为文件夹提供读/写权限

我有一个使用Visual Studio 2010构建的安装项目。 安装程序在将应用程序及其所有依赖项安装到正确的子目录和程序数据目录方面工作正常。 但是,我注意到安装程序创建的每个目录(根文件夹及其所有子目录)都不提供“写入”权限。 添加到“用户”组目录的唯一权限是: 阅读并执行 列出文件夹内容 读 无论用户是否将应用程序安装为“管理员”,都会发生这种明显的默认权限设置。 对我来说,安装程序没有给正在安装的应用程序使用的文件夹赋予“写入”权限,这似乎很奇怪 – 安装程序在应用程序数据库的ProgramData文件夹中创建的文件夹更加令人困惑。没有获得“写入”权限。 我的问题是,有没有办法配置安装项目,以便在创建文件夹时,我们可以告诉它提供什么类型的权限以及向谁提供。 在我的例子中,我需要提供(应用程序的)根目录及其所有子目录,以及放置在ProgramData文件夹中“用户组”的“读/写”权限的文件夹。 从技术上讲,我很乐意向“用户组”提供“完全控制”目录。