系统找不到文件“ wixca.dll”

时间:2018-09-20 09:54:52

标签: wix wix3.5 wix3.7 wix3.6 wix3.8

enter image description here我将项目从Wix 2.0迁移到4.0,然后当我尝试从Visual Studio 2017(Votive)构建项目以生成安装程序软件包时,出现以下错误:

系统找不到文件“ wixca.dll”

我查看了以下路径,但未找到dll:

ProgramFiles \ Wix Toolset v4.0 \ bin

在我的 LicenseAgreementDlg.wxs 文件中,我正在使用以下代码,从这里使用Value =“ WixUIPrintEula”,我们将其称为 Common.wxs 文件

<Control Id="LicenseText" Type="ScrollableText" X="20" Y="60" Width="330" Height="140" Sunken="yes" TabSkip="no">
                    <Text SourceFile="$(var.LicenseFile)" />
                </Control>
                <Control Id="Print" Type="PushButton" X="76" Y="243" Width="65" Height="17" Text="!(loc.WixUIPrint)">
                    <Publish Event="DoAction" Value="WixUIPrintEula">1</Publish>
                </Control>

我在Common.wxs文件中使用“ wixca.dll”

如下所示:

<Fragment>
<CustomAction Id="WixUIPrintEula" BinaryKey="WixUIWixca" DllEntry="PrintEula" Return="ignore" Execute="immediate"/>
<Binary Id="WixUIWixca" SourceFile="wixca.dll"/>
</Fragment>

请帮助我在哪里可以获取wixca.dll?

2 个答案:

答案 0 :(得分:0)

您似乎需要与安装程序一起执行的自定义操作。检查是否有其他创建wixCA.dll的项目。

答案 1 :(得分:0)

消除片段 :正如我在a previous comment中所写的那样,请阅读以下答案: How to get rid of wixca.dll and print Eula in WIX v3 。总之,在您使用use a standard WiX dialog set的情况下,WiX 3及更高版本中似乎不再需要此许可协议打印片段。只需尝试取出整个片段并设置WiX对话框集,看看是否可以解决问题。

WiX对话框集 :要在WiX Votive(Visual Studio)中添加标准对话框集。

  • 在Visual Studio中,对于您的WiX项目:将项目引用添加到%ProgramFiles (x86)%\WiX Toolset v3.11\bin\WixUIExtension.dll
  • 在WiX源中设置Mondo默认GUI: <UIRef Id="WixUI_Mondo" /> (注释掉其他UIRef元素)。或设置另一组list here
  • 测试编译。现在,您的设置应该神奇地具有一组默认的标准对话框。

WixCA.dll WixCA.dll 包含WiX standardized custom actions(有趣的概念:标准的自定义操作-语言之花),并且此DLL被编译为使用WiX随附的内置自定义操作的任何WiX内置MSI的Binary表。

使用这些自定义操作的WiX源会将名称空间xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"添加到其顶部WiX元素中。当它也被编译到Binary表中时,可能还有其他情况,但是肯定存在该命名空间-并且添加了任何自定义操作元素。寻找以<util:.....>开头的元素(除了该命名空间外,还有许多自定义操作。See documentation