我将项目从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?
答案 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)中添加标准对话框集。
%ProgramFiles (x86)%\WiX Toolset v3.11\bin\WixUIExtension.dll
。<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。