wix - WIX 中的二进制引用是什么?

标签 wix installutil

我使用 dark.exe 从“旧”Visual Studio 2010 msi 文件创建了 WXS 文件。 当我打开创建的 WXS 文件时,它在文件顶部有我无法解释的二进制引用。有人可以告诉我吗?我在哪里可以找到有关它的一些文档?

<Binary Id="InstallUtil" SourceFile="C:\Temp\Binary\InstallUtil" />
<Binary Id="MSVBDPCADLL" SourceFile="C:\Temp\Binary\MSVBDPCADLL" />
<Binary Id="VSDNETCFG" SourceFile="C:\Temp\Binary\VSDNETCFG" />
<Binary Id="DefBannerBitmap" SourceFile="C:\Temp\Binary\DefBannerBitmap" />
<Binary Id="UpFldrBtn" SourceFile="C:\Temp\Binary\UpFldrBtn" />
<Binary Id="NewFldrBtn" SourceFile="C:\Temp\Binary\NewFldrBtn" />

前三名给我的问题最多,因为我不知道他们在哪里以及做什么。

最佳答案

简短回答 - 这些文件用于 ui 对话框、自定义操作以及某些文件适用于安装程序本身功能的所有位置,但适用于它安装的产品。

在您的例子中,前三个是 Visual Studio 安装项目用来执行自定义操作的 DLL - MSI 扩展性 block 。最后三个是稍后在代码中的 UI 对话框中使用的图标。

要获取文件本身,您应该使用 Dark.exe 的导出二进制文件参数。

现在,您的选择取决于您想要实现的目标。如果您的任务只是将您的设置升级到 VS2012,快速而肮脏,然后按原样使用导出的文件,它应该可以工作。

但是,如果您想让它干净漂亮,或者您应该使用新功能更新您的设置,那么您将必须重写这些。

对于 UI:如果您的项目不包含自定义 UI,我建议切换到 WIX UI 库 - 漂亮且内置。如果您有自定义 UI,您可以扩展它,但这需要更多工作。 WIX 有可视化 UI 编辑器。

对于自定义操作:当 MSI/WIX 功能无法满足您需求时,可以使用自定义操作。要升级它们,您应该查看前三个二进制文件的使用位置以及它们的调用方式。通常,自定义操作的含义可以从其名称来理解。然后,您必须用您自己的(或其他人或 WIX 团队现成的)执行相同操作来替换这些自定义操作。然后您可以删除未使用的二进制文件。

关于wix - WIX 中的二进制引用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17207185/

相关文章:

iis-7 - 新创建的 IIS AppPool 标识的权限集

syntax - 正确的 InstallUtil 文件语法路径?

.net InstallUtil 实用程序 - 32 位与 64 位

c# - 保存 Windows 服务的属性(Wix 安装程序)

wix - 如何在 Wix UI Edit 控件上执行验证

wix - 如何在 WiX 中运行带有参数的可执行文件?

win32-process - installutil.exe 不是有效的 win32 应用程序

c# - Windows 服务 - 安装服务时出现 UnauthorizedAccessException 错误 (C#)

batch-file - 使用ERRORLEVEL检索InstallUtil的退出状态

wix - 添加删除程序图标