Tag: wix

如何执行具有依赖项的WiX自定义操作DLL文件

我想创建一个依赖于第三方.NET DLL的CustomAction C#DLL文件(在这种特定情况下,它是MySql.Data.dll )。 我有C#自定义动作DLL文件与下面的WiX片段一起使用。 我只想弄清楚如何安全地为自定义操作添加依赖项。 注意:我实际上并不需要此第三方DLL文件文件来运行已安装的应用程序。 NOT Installed 我是否需要安装第三方DLL文件( MySql.Data.dll )才能运行自定义操作? 我可以使用第三方DLL文件添加另一个二进制标记吗?

Wix-如何复制目录以安装文件夹

我的项目中有一个包含许多文件的Bin文件夹。 目前,我只知道如何使用下面的代码添加特定文件来安装文件夹。 但是,我想将整个目录移动到安装路径。 例如,将整个文件夹“Bin”移动到安装路径“C:\ Myapplication”。 那我该怎么办? 提前致谢!

Registry GetSubKeyNames()列出了与Regedit不同的密钥?

我们正在使用WIX来安装我们创建的许多服务。 我正在编写一个快速实用程序来转储当前安装的服务。 我只是迭代以下的子键: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 寻找DisplayName 。 问题是,我的十项服务中只有两项出现在列表中。 但是,当我查看Regedit中的子键时,它们就在那里。 同样,它们在已安装的程序中(我也可以在Win32_Product的SELECT *中找到它们)。 我浏览了MSDN文档,试图找出是否有一些我错过的注册表的特殊视图。 也许这是一个特权问题? 但我正在以管理员身份运行该工具。 是否有一些蜂巢安装问题? 为了清楚代码,这里是测试应用程序代码(来自这个答案 ): String registryKey = @”SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall”; using(Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(registryKey)) { foreach(String subkeyName in key.GetSubKeyNames()) Console.WriteLine(key.OpenSubKey(subkeyName).GetValue(“DisplayName”)); } 有什么想法吗?

Wix Service Installer有时无法安装或启动

有时当我运行我的安装程序(使用wix构建)时,它无法安装或启动该服务。 但问题并不总是出现,所以大部分时间它都有效,但现在却失败了。 我的解决方案到现在为止: 按重试按钮重试。 通过关闭安装程序并再次打开它来重试。 通过关闭安装程序和Windows文件资源管理器并重新打开它们来重试。 断开外部驱动器并重新连接,然后重试安装程序。 但我正在寻找如何永久解决它。 因为我想要一个可靠的安装程序。 使用以下设备: Windows平板电脑与Windows 8.1 Windows 10的Windows平板电脑 Windows PC与Windows 10 Windows Server 2016的VirtualBox实例 Windows 7的VMWare实例 项目规格: .NET 4.7.1 Wix 3.11.1.2318

从托管代码获取安装日期

是否有托管API使用产品GUID检索应用程序的安装日期? 谢谢。 斯科特

使用参数调用C#CA时无法调用command.exe(SQL Server Setup.exe)

开发人员环境:Wix 3.10,Visual Studio 2010(带有Wix扩展),Windows 7 x64 我想创建一个SQL Server实例安装程序(将固定参数传递给Microsoft官方安装程序Setup.exe ) 即使在阅读如何使用WiX将CustomActionData传递给CustomAction后,我也未能使用参数调用C#延迟的CustomAction ? 。 我认为安装SQL Server需要提升状态,因此我需要延迟操作。 似乎安装程序正在停止,而msi在JIT调试代码之前调用C# CustomAction (System.Diagnostics.Debugger.Break)有时会发生明显错误(通常在使用详细日志模式调用msi时)“Windows Host Process(Rundll32)停止“。 Msi SELECT Message错误可能是运行时错误的原因之一,但似乎错误的主要原因是缺少用户权限或x86 / x64兼容性?,或者我的愚蠢错误……任何想法? 以下是与此问题相关的wxs和cs文件的一部分: CallSQLSvrInstallDlg.wxs ~Snip~ <!– –> 1 1 CustomizedVerifyReadyDlg.wxs 1 ~Snip~ CustomAction.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using WinForms = System.Windows.Forms; using System.IO; using Microsoft.Deployment.WindowsInstaller; using System.Threading; public class […]

Wix自定义动作序列

我试图安装到我的软件,这个软件有一些先决条件。 我为他们制作了一个Bootstrapper wix并尝试单独运行它们而不是在Main Wix安装程序中似乎工作正常。 当我试图连接我从Wix安装程序中的Bootstrapper获得的EXE时,我开始出现故障。 先决条件引导程序有.Net和MS C ++,问题似乎是当我的Wix安装程序调用先决条件时,并且恰好在C ++安装时它会中断。 但是,如果我尝试单独安装Prerequisites EXE,它可以正常工作。 在两种情况下,我都试图将其称为文件和二进制文件,但是我失败了。 这是我如何称呼它: <!– –> <!– –> 我想要的顺序是在将文件复制到Program文件后安装它们 Not Installed 错误 : [18F0:04C0] [2018-03-13T14:01:04] w348:应用程序请求重试包:vcredist_x64.exe,遇到错误:0x80070652。 重试… [173C:176C] [2018-03-13T14:01:07] i301:应用执行包:vcredist_x64.exe,操作:安装,路径:C:\ ProgramData \ Package Cache \ 13674C43652B941DAFD2049989AFCE63CB7C517B \ vcredist_x64.exe,参数:’“C:\ ProgramData \ Package Cache \ 13674C43652B941DAFD2049989AFCE63CB7C517B \ vcredist_x64.exe”/ qb / norestart'[173C:176C] [2018-03-13T14:01:11] e000:错误0x80070652:进程返回错误:0x652 [ 173C:176C] [2018-03-13T14:01:11] e000:错误0x80070652:无法执行EXE包。 [18F0:04C0] […]

Wix – 如何从安装目录安装后运行exe文件?

我正在使用一个使用wix安装的程序。 (不知道它是否相关,但它是一个C#程序) 我想运行一个由msi文件安装的exe文件,但由于用户选择了安装路径,因此我不知道安装的位置。 我想问一下如何从用户选择的位置运行exe文件。 虽然它不是问题的一部分,但我也很高兴看到一个从绝对位置运行exe文件的例子,因为我是第一次使用wix并完成所有操作的初学者。

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

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

WIX自动生成GUID *?

假设我生成了我的WIX XML文件,其产品ID为*。 另外,对于每个组件GUID,我使用*。 幕后是每次编译我的WIX安装程序时*旋转一个独特的GUID? 假设我的1.0.0版安装了一台机器。 然后我将我的WIX安装程序重新编译为1.0.1版。 当我去安装1.0.1时,WIX如何知道已经安装了1.0.0,因此将删除所有文件/注册表项并安装1.0.1? 我应该使用GUID中的*还是我的WIX XML配置中应该有唯一的ID / GUID?