1

我使用了 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" />

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

4

1 回答 1

2

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

在您的情况下,前三个是 Visual Studio 安装项目用于执行自定义操作的 DLL - MSI 可扩展性块。最后三个是后面代码中 UI 对话框中使用的图标。

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

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

但是,如果您希望它干净整洁,或者您应该使用新功能更新您的设置,那么您将不得不重写这些。

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

对于自定义操作:自定义操作是您在 MSI/WIX 能力不够时使用的东西。要升级这些,您应该查看前三个二进制文件的使用位置以及它们的调用方式。通常,自定义动作的含义可以从它的名字来设计。然后,您必须将这些自定义操作替换为您自己的(或其他人或 WIX 团队现成的)执行相同操作。然后您可以删除未使用的二进制文件。

于 2013-06-20T07:28:21.257 回答