Hello,
I’m rather new at using CPack, so please bear with me.
I have a project for which I use CPack and Wix to create an msi. I need to add a firewall exception for the installed executable, but I get this error in wix.log:
files.wxs(23) : error CNDL0104 : Not a valid source file; detail: 'fire' is an undeclared prefix. Line 23, position 22.
I think the solution would be to add the xmlns:fire=“http://schemas.microsoft.com/wix/FirewallExtension” attribute to the Wix element in files.wxs, but I don’t know if that is even possible.
Here’s what I have right now:
-
In my CMakeLists.txt I added the extension and the patch file:
set(CPACK_WIX_EXTENSIONS "WixFirewallExtension") set(CPACK_WIX_PATCH_FILE "${CMAKE_CURRENT_SOURCE_DIR}/patch.xml")
-
In patch.xml I added the following:
<CPackWiXFragment Id="CM_FP_myapp.exe"> <fire:FirewallException Id="FWX1" Name="My App" Scope="any" /> </CPackWiXFragment>
-
The generated files.wxs looks like this:
<?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Fragment> ... <DirectoryRef Id="INSTALL_ROOT"> <Component Id="CM_CP_myapp.exe" Guid="*"> <File Id="CM_FP_myapp.exe" Source="D:/myapp/build/_CPack_Packages/win64/WIX/myapp-3.1.0-win64/myapp.exe" KeyPath="yes"> <fire:FirewallException Id="FWX1" Name="My App" Scope="any"/> </File> </Component> </DirectoryRef> ... </Fragment> </Wix>
The error in wix.log states that ‘fire’ is an undeclared prefix, which I think would be solved by adding the appropriate xmlns attribute. Can that be done?
Thank you for taking the time to help me!
Bogdan