Hi, I've got a package that is a plug-in for another product. When I install the plug-in, I want it to modify the app.config file for the primary product to register itself; similarly I want it to deregister itself on uninstall. I've got this all working except for the uninstall part.
In my wxs I've got: <Component Id="ConfigUpdate" KeyPath="yes" Guid="{243B948C-153A-477d-BF8F-687915DE0188}"> <util:XmlConfig Id="AddPackageNode" File="[INSTALLDIR]Renderer.exe.config" Action="create" ElementPath="//configuration/gdnet.rendering/presentationPackages" Name="add" Node="element" Sequence="1" On="install"/> <util:XmlConfig Id="AddPackagePath" File="[INSTALLDIR]Renderer.exe.config" ElementPath="AddPackageNode" Name="path" Value="Packages\StandardLayouts.dll" Sequence="2"/> <util:XmlConfig Id="RemovePackageNode" File="[INSTALLDIR]Renderer.exe.config" Action="delete" Node="element" VerifyPath="add[...@path='Packages\StandardLayouts.dll'[\]]" ElementPath="//configuration/gdnet.rendering/presentationPackages" On="uninstall" Sequence="1"/> </Component> This successfully adds an <add path="Packages\StandardLayouts.dll"/> element under configuration/gdnet.rendering/presentationPackages in my main app's config file. However, uninstalling it doesn't remove the element. I checked out the MSI with Orca: RemovePackageNode [INSTALLDIR]Renderer.exe.config //configuration/gdnet.rendering/presentationPackages add[...@path='Packages\StandardLayouts.dll'[\]] 545 ConfigUpdate 1 which looks fine; I also tried running msiexec with verbose logging turned on, and I see: MSI (s) (48:8C) [19:55:29:273]: Invoking remote custom action. DLL: C:\Windows\Installer\MSIB6EC.tmp, Entrypoint: SchedXmlConfig MSI (s) (48:78) [19:55:29:316]: Generating random cookie. MSI (s) (48:78) [19:55:29:333]: Created Custom Action Server with PID 3720 (0xE88). MSI (s) (48:A8) [19:55:29:657]: Running as a service. MSI (s) (48:A8) [19:55:29:661]: Hello, I'm your 32bit Impersonated custom action server. MSI (s) (48!BC) [19:55:29:684]: PROPERTY CHANGE: Adding ExecXmlConfigRollback property. Its value is '0C:\Program Files (x86)\GameDev.net\Renderer\Renderer.exe.config|TZT8fK/rJAK4kL5:|QK9Wwq3U4_RHz|k?hobqh8e3{xh...@9fu6a8|UBxH3'ulL)CanKA5[8(^t}uG(;KtIVZHzG6:|QKF5[8(Sm^C/KgIzG6:|QK-C22KTRR1I'fojmgrvpkzl...@otc/Ay6[HjM?z:%c,y3^|b?H*1DQKw1}WH!m3kL^WZjKz|,9I87IJMFIo?3pfuPKvFK[H'/n}8'%^C/oX,(M{rvuI?qUIKDQ?h8,ImPK;tTtG{urQKf;}kKDY2+0QVc1L1.As;?7nJM)43kL}MoYHwJDSIxI~ZHpO?oK%M^9IyuzQK'LEhM,mvuIy;CZ:{urQKf;}kKcEZjKz|,9I87IJMoT:oB{rvuIRKzD/i_WWH.V(UIrmf;Hj%lKM%jZJM(/n}8'%^C/hM}mKz|,9IeuZJM5xN-MHX?A/P%w;HIc,y3!}b?H*1DQK/xH[H!m3kLh-p/C%m7nKs(J!0A5NQ4gth_MrA,1KWI4pH{cT[HJ4[8(Sm^C/?SEwH2-XKMXm0CGGV0!M_vl;?C{RRKDQ?h8{nGr3pstZHAoAy3:J;+09XFCG]GX;?C{RRKDQ?h8;XFCGB]?w3pstZHAoAy3:J;+0W4[8(Sm^C/WiK[H6ckKM)CanKV6{yGnM9ZHF5[8(Sm^C/6/[;h60...@*3jafgibgqpafel_ppkq.-@HkkEpK_0~x3/,K*0VLK446IR,M~IFCG6:|QKSmgSJv~Q,MHX?A/rGu2I'FoJMGrvPKzlduIILn:)YjWC8t(~ZHAciVIxI~ZHpO?oKSrn:):m^C/foGoKbV,+9'%^C/Sm^C/_...@ok,7dBGZSI!0f,sAGKa;+0HX?A/Sm^C/qjWC8}!TtI6P1CG6:|QKF5[8(Sm^C/Sm^C/[bE:GvB'sGB6llLI5ti8{Z22A/[e%DsUKhB0FnuIR Action start 19:55:29: SchedXmlConfig. MSI (s) (48!BC) [19:55:29:685]: Doing action: ExecXmlConfigRollback MSI (s) (48!BC) [19:55:29:685]: Note: 1: 2205 2: 3: ActionText Action start 19:55:29: ExecXmlConfigRollback. MSI (s) (48!BC) [19:55:29:688]: PROPERTY CHANGE: Adding ExecXmlConfig property. Its value is '1C:\Program Files (x86)\GameDev.net\Renderer\Renderer.exe.config70//configuration/gdnet.rendering/presentationpackagesa...@path='Packages\StandardLayouts.dll']0'. Action ended 19:55:29: ExecXmlConfigRollback. Return value 1. MSI (s) (48!BC) [19:55:29:689]: Doing action: ExecXmlConfig MSI (s) (48!BC) [19:55:29:689]: Note: 1: 2205 2: 3: ActionText Action start 19:55:29: ExecXmlConfig. Action ended 19:55:29: ExecXmlConfig. Return value 1. MSI (s) (48:04) [19:55:29:696]: Doing action: RegisterUser MSI (s) (48:04) [19:55:29:696]: Note: 1: 2205 2: 3: ActionText Action ended 19:55:29: SchedXmlConfig. Return value 1. MSI (s) (48:04) [19:55:31:267]: Executing op: ActionStart(Name=ExecXmlConfig,,) MSI (s) (48:04) [19:55:31:268]: Executing op: CustomActionSchedule(Action=ExecXmlConfig,ActionType=3073,Source=BinaryData,Target=ExecXmlConfig,CustomActionData=1C:\Program Files (x86)\GameDev.net\Renderer\Renderer.exe.config70//configuration/gdnet.rendering/presentationpackagesa...@path='Packages\StandardLayouts.dll']0) MSI (s) (48:34) [19:55:31:273]: Invoking remote custom action. DLL: C:\Windows\Installer\MSIBFC7.tmp, Entrypoint: ExecXmlConfig (It looks like my mail client has screwed up the spacing in the CustomActionData strings a bit; looking at the log file in visual studio, the fields are separated with whitespace). After looking through the WixCA sources, it looks like everything should be functioning normally. There are no warning or debug messages of any sort saying that XmlConfig can't do its thang. Yet the element doesn't get removed. The timestamp on the config file changes, but the element is still in there. WI thinks that the install succeeded. Anyone know what's going on? - Richard ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users