Using Windows SDK Bootstrapper Packages with WiX - .net-4.0

In tracking down another issue I came across the folder C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\Bootstrapper\Packages that looks like it contains a number of pre-made installer items for various programs. I have a project I am on now that requires Crystal Reports and would like to know:
1) Can I use the "Crystal Reports for .NET Framework 4.0" installer project found in this directory to install Crystal Reports using a WiX bootstrapper (exe output) or WiX project (msi output)?
2) How would I go about including this Crystal Reports installation package in the bootstrapper or msi project?

1) You can use pretty much any msi/exe setup into bootstrapper
2) If you want to include EXE/MSI into bootstrapper then have a look at the documentation http://wixtoolset.org/documentation/manual/v3/xsd/wix/packagegroup.html and i believe what you need is MsiPackage Element for .msi or if it's exe setup then you use ExePackage Element.

Related

WiX toolset: How to execute multiple exe files with MSI package

I am working on my first MSI builder with WiX. I am hoping that I can receive some help on what I am trying to achieve.
For my app, the user has to have Visual Studio Code (latest) and a couple of other applications on the local machine. Therefore, I included .exe file in the MSI package like the screenshot below.
I am wondering if there is a way to run those execution files as a part of Microsoft Installer download...?
I am using Visual Studio 2017 and WiX toolset to build a Microsoft installer.
I appreciate any comments or resource that I can look into.
Best regards,
You'll need a bootstrapper (setup.exe) to properly get them preinstalled along with installing your app's MSI. You can generate a bootstrapper using a WiX bundle.

Wix Installer won't build on buildserver

I have tried to build a Wix MSI using our build server. I have set the build configuration in the Configuration manager to DEBUG/x86. All the other projects build correctly EXCEPT for the Wix Installer.
Initially there was an error requesting the latest version of WIX was installed on the build server "The WiX Toolset v3.11 (or newer) build tools must be installed to build this project. To download the WiX Toolset, see http://wixtoolset.org/releases/" so I follwed this -
https://subscription.packtpub.com/book/web_development/9781784393212/1/ch01lvl1sec12/compiling-a-wix-installer-on-a-build-machine-using-msbuild
also have used this -
https://wixtoolset.org/documentation/manual/v3/msbuild/wix_with_team_build.html
Now the build freezes on the Wix project and eventually times oout at 59 minutes. What would be wrong? what needs correctling?
I have tried these suggestions already - https://subscription.packtpub.com/book/web_development/9781784393212/1/ch01lvl1sec12/compiling-a-wix-installer-on-a-build-machine-using-msbuild
also have used this -
https://wixtoolset.org/documentation/manual/v3/msbuild/wix_with_team_build.html
Expecting it to build, then I can create an MSI file.
.NET 3.5: This might very well be something else, but maybe try to install the .NET Framework 3.5. WiX 3.x has a build-dependency requiring this .NET version.
How-To: Please see this answer for more details: WiX Toolset: Creating a simple WiX project breaks in VS2017: The "CreateProjectReferenceDefineConstants" task was not found

WixSetup - Check pre-requisites & Adding redistributable?

I am using WixSetup project for my application, which generates msi as output successfully. Now, I have to add few more details-
Question 1: Check pre-requisites before installation:
As a part of pre-requisites, I have to check few conditions in product.wxs file (Similar to .NET Framework 4.0)
<PropertyRef Id="NETFRAMEWORK40FULL"/>
<Condition Message="[ProductName] requires .NET Framework 4.0.">Installed OR NETFRAMEWORK40FULL</Condition>
How to add pre-requisite condition in product.wxs file with registry entry check?
Question 2: Adding redistributable packages in msi
Also, I need to add couple of redistributable items in msi, which will be shipped with msi.
How I can add these packages in msi?
For the first point, the WiX documentation covers this exact scenario. See http://wixtoolset.org/documentation/manual/v3/howtos/files_and_registry/read_a_registry_entry.html
With your second question, this is generally done by creating a bootstrapper bundle, which is a separate wix project that runs through a series of .msi files in sequence. Bootstrapper projects are generally quite simple to set up.

Sample application for WiX bootstrapper for beginners

I'm very new to WiX based applications, and I need to create an MSI file where it has to check for .NET Framework 4.0 and SQL Server 2008. If they are not installed, I have to get them installed first and then have to install my application's EXE file and one more VBScript agent. It must be done like when you install WiX 3.7 setup (if we double click the setup file, it will show a UI as shown below!
Where do I start? Is there any step-by-step guide to develop this kind of application?
You'll need the following projects. They can be created from project templates in Visual Studio. Each of them would probably have separate tutorials that you might find with a Web search.
A WiX Setup project to build an .msi. The source files for such a project declare a WiX/Product. It could have conditions that check for .Net Framework4.0 and SQL Server 2008. If a check fails, installation of the .msi will fail, which is all that can be done in an .msi. The project would include your application .exe as a Component.
A WiX Bootstrapper project to build an .exe. The source files for such a project declare a WiX/Bundle. In the bundle is a Chain of installers, which would include .Net Framework4.0, SQL Server 2008, your .msi, and your VBScript Agent.
A WPF Library project to provide a BootstrapperApplication implementation with a custom UI for the bootstrapper project.
Your best bet is to consult the documentation, the WiX source code and various tutorials. Keep in the mind that tutorials might be out-of-date--in most cases WiX has gotten simpler with each version.

Distribute WPF app with WIX and .net Framework

I need to distribute my WPF application. I am using WIX for building the Setup.exe.
But I also need to ensure that the .net framework 4.0 is first installed on the user's PC. I have downloaded dotNetFx40_Full_x86_x64.exe but how do I create a WIX installation that will contain MyApp.Msi and the .net framework redistribution file?
What I really want is to have just 1 Setup.exe that contains and runs both installs(my.msi and the .exe) in order.
Can this be done with WIX? Is there a better solution?
You can use the WiX bootstrapper technology (referred to as Burn) to create a single bootstrapper to install .NET and your .msi. Burn will enable you to embed the .NET redistributable and your .msi into a single setup.exe as well.
A setup bootstrapper is the file that could install the .NET framework. You can read about the WiX bootstrapper here. If you want the final output to be one .EXE file, you can pack the bootstrapper and the .MSI file into a new .EXE file using IExpress. IExpress is included in your Windows installation.
With WiX + IExpress you can create an installation package contained in one .EXE file.