Xaml Control Not Working After WIX Install

284 views Asked by At

I have two controls in my XAML app. One is Awesomium and the other is the PDF Viewer AxAcroPDFLib.AxAcroPDF When I run the app locally from Visual Studio, when Awesomium encounters a pdf link it reroutes the request to the pdf viewer and everything is honky dory.

The problem is that once I try to create the standalone product via the WIX installer deal, the rerouted request seems to be handled by my locally installed Acrobat Reader instead of the AxAcroPDFLib one (the PDF viewer runs outside of my XAML app.)

I thought it might have something to do with the two dlls (Interop.AcroPDFLib.dll and AxInterop.AcroPDFLib.dll) for the reader not being registered so I used heat.exe to create the appropriate dll registrations, but that didn't change anything at all (no error thrown durring installation and the PDF viewer still ran outside my app.) I even tried using the "forbidden" SelfRegCost = "1" on the two files and that failed to install, saying that it could not register the DLL. At this point I am a bit lost as to what I should do. Any assistance is greatly appreciated.

Update: I tried publishing the app using VS, skipping all of the WIX stuff and the app works as intended. I am now certain that it has something to do with my WIX xml...

1

There are 1 answers

0
Serj Sagan On BEST ANSWER

In the end the problem was that I was not copying all of the necessary files to make it work...I think I went excessive on a few of these, but here is the file list that I needed to have for it to finally work (I stopped trying to register any of the DLLs using heat or otherwise):

AcroPDF.dll
avcodec-53.dll
avformat-53.dll
avutil-51.dll
Awesomium.Core.dll
Awesomium.Core.xml
Awesomium.dll
Awesomium.Windows.Controls.dll
Awesomium.Windows.Controls.xml
Awesomium.Windows.Forms.dll
Awesomium.Windows.Forms.xml
awesomium_process
AxInterop.AcroPDFLib.dll
MyApp.exe
MyApp.exe.config
MyApp.exe.manifest
icudt.dll
Interop.AcroPDFLib.dll
libEGL.dll
libEGLv2.dll
xinput9_1_0.dll

I also had en-US.dll in a separate locales folder