tags:

views:

1340

answers:

2

If this is a repeat question, please direct me to the existing solution. I wasn't able to find a matching query.

We currently use InstallShield. I'm attempting to covert a project with 407 files to a WiX3 installation package. I tried using heat.exe to do some of the automation but I get the following warning for almost every file:

c:> heat dir "c:\projectDir\projectA" -gg -ke -template:Product -out "c:\install\projectA\heatOutput"

heat.exe: warning HEAT5150 : Could not harvest data from a file that was expected to be a SelfReg DLL: c:\projectDir\projectA\plugin1.dll. If this file does not support SelfReg you can ignore this warning. Otherwise, this error detail may be helpful to diagnose the failure: Unable to load file: c:\projectDir\projectA\plugin1.dll, error: 126.

Q: Is it normal for this warning to be reported for every file?

If there's a current "How To create/convert to your first WiX install project with many files" tutorial, please point me to it. The key requirement is "with many files".

Thank-you

-Karen Kwong-

PS. I know that WiX is designed for incremental install project creation but it would be nice to know if there's an automated way to convert existing install projects.

+1  A: 

If there's a current "How To create/convert to your first WiX install project with many files" tutorial, please point me to it. The key requirement is "with many files"

You can take the msi file generated with installshield, and then decompile it with the dark.exe tool which comes with wix. As you can see in this diagram, dark.exe generates wxs files from a msi file.

You can use it like this:

dark installer.msi decompiled.wxs

See dark /? for more information.

edit: I don't use Votive, but AFAIK it should be able to handle the wxs files generated by dark. Did Votive show you an error?

edit2: wixproj files are just for visual studio and msbuild integration. The core tools don't know or use this format. Simply create a blank wixproj and add the wxs file to it from visual studio.

edit3: You should not compare the size of the wxs file to the msi file size. Like an installshield project file, a wxs does not contain the files to install. It only references them. Your installshield project file is not 70MB large either. If you want to extract the binary files from the MSI, then you should use dark.exe with the -x <path> switch.

Wim Coenen
Thanks. Dark.exe created an *.wxs which required WiXAware 2.0 to view it. Is this correct behavior? I was surprised that dark.exe didn't generate a file that I could load into Votive (via Visual Studio 2008) since that is included with the WiX 3.0 Toolset.
Karen Kwong
just open the wxs in VS... it's just XML, nothing fancy.
sascha
I was hoping for a *.wixproj but it sounds like I'll only get a *.wxs file that is missing alot of the orginal installation project content. Execution of dark.exe gave some warnings but none of which explains why alot of the product files are not in the resulting *.wxs
Karen Kwong
Thanks for your response. Would you happen to know why the resulting *.wxs doesn't have much of the project content? The Dark warnings don't explain the significantly reduced content. There isn't enough in the *.wxs to work with. The 72MB *.msi results in a 820 KB *.wxs file.
Karen Kwong
I see. I have to create a Votive WiX project and add this dark.exe output file to the new project. Then, I edit and address the conversion warnings/errors.Thanks for the help.
Karen Kwong
A: 

Are you trying to extract data from x64 DLL's? That doesn't really work...

sascha
I'm trying to find the easiest way (other that to build a WiX project from scratch) to convert an InstallShield installation project (or *.msi) to a WiX installation project using the tools available with the WiX v3.0 Toolset (ie. Votive w/ Visual Studio 2008).
Karen Kwong