The system cannot find the file "wixca.dll"

1.5k Views Asked by At

enter image description hereI migrated the project from Wix 2.0 to 4.0, then when i am trying to build the project from visual studio 2017 (Votive) to generate installer software package, I am getting the below error:

The system cannot find the file "wixca.dll"

I looked into the below path and didn't find the dll:

ProgramFiles\Wix Toolset v4.0\bin

In my LicenseAgreementDlg.wxs file, i am using the below code and from here using Value="WixUIPrintEula" we are calling Common.wxs file

<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>

I am using "wixca.dll" in my Common.wxs file

like as shown below:

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

Please help me where can i get wixca.dll?

2

There are 2 best solutions below

0
Ganesh Gopu On

It looks you have a Custom Actions to perform along with the installer. Check for any other projects that creates the wixCA.dll.

3
Stein Åsmul On

Eliminate Fragment: As I wrote in a previous comment, maybe read this answer: How to get rid of wixca.dll and print Eula in WIX v3. In summary it looks like this snippet for license agreement printing is no longer necessary in WiX 3 and upwards provided you use a standard WiX dialog set. Just try to take out the whole fragment and set a WiX dialog set and see if this solves the problem.

WiX Dialog Set: To add a standard dialog set in WiX Votive (Visual Studio).

  • In Visual Studio, for your WiX project: add a project reference to %ProgramFiles (x86)%\WiX Toolset v3.11\bin\WixUIExtension.dll.
  • Set the Mondo default GUI in your WiX source: <UIRef Id="WixUI_Mondo" /> (comment out other UIRef elements). Or set another set, list here.
  • Test compile. Your setup should now magically have a default set of standard dialogs.

WixCA.dll: For the record WixCA.dll contains WiX standardized custom actions (funny concept: standard custom actions - linguistic flower) and this DLL is compiled into the Binary table of any WiX-built MSI which uses the built-in custom actions provided with WiX.

A WiX source that uses these custom actions will have the namespace xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" added to its top WiX element. There could be other cases when it is also compiled into the Binary table, but certainly if that namespace is there - and any custom action elements are added. Look for elements starting with <util:.....> (there are many custom actions in addition to that namespace. See documentation.