I really feel like I shouldn't have to ask a question on SO to get basic information like this, but I can't find a reliable source anywhere.
Is WiX v4 released? In Development? In Beta? Still being designed?
Lots of people seem to already be using WiX v4, as evidenced by SO questions about it. And it has an official release page on the WiX site, without any mention of "Beta" or "Release Candidate", etc: http://wixtoolset.org/releases/v4-0-0-5205/
However, there are no released versions for v4 on GitHub: https://github.com/wixtoolset/wix4/releases
And the Wix homepage still directs you to download v3.
And one of the developer's blogs has a recent post about v4 that uses future-tense language like "will have" and "should support".
But worst of all, the current version of the WiX visual studio integration tools has templates for v4, which makes it seem like v4 is officially supported!
And when you try to build one of these templates the build error is The WiX Toolset v4 build tools must be installed ... To download WiX Toolset v4, see http://wixtoolset.org/releases/ despite the fact that http://wixtoolset.org/releases/ contains downloads exclusively for v3!
This is a crazy amount of mixed messages.
Is there something somewhere that says officially, definitively what state WiX v4 is in?
The previous answer is out dated. WiX v4 is very close to being ready and I encourage active testing of it during the RC phase.
In WiX v4, there is no installer for WiX. It's a dotnet tool you install. If your a user of Votive, Votive is no more. Instead FireGiant has a closed source but free replacement called HeatWave. This creates your .wixproj which is now an SDK style project. References to extensions are no longer DLL references but Nuget package references.
There is a tool to covnvert v3 schema to v4 schema called WiXCop. Heatwave will do this for you in a one time project by project conversion step.
WiX is no longer installed on the build server as msbuild will automatically install the SDK package references.
FireGiant reached out to be before the release and gave me a preview look. From this I was able to update my open source project IsWiX to completely support v3 or v4 using Votive or HeatWave.
All in all it's looking really good and once all the final bugs are gone I will be migrating all of my customers over to WiX v4.
WiX Toolset v4 RC2 was released on January 20, 2023. There are regular updates on the FireGiant blog that are helpful for tracking progress towards the final release. WiX v4 is now a .NET tool. This release contains many significant changes from v3.
WiX v4 does appear as a number of weekly releases which can be downloaded and installed. I've installed v4.0.0.5918, and it appears to work with the integrated Visual Studio WiX extension v4 projects, though I've not tested this extensively. The wxs project template looks identical to v3.
Considering the progress of v4, although I admit I'm quite new to this, I found a page here going back as far as end 2012!
http://robmensching.com/blog/posts/2012/12/12/the-wix-toolset-v4.0-begins/
A more recent article on WiX v4.0 and it's features can be found here
https://www.joyofsetup.com/tag/wix4/
Bug fix logs also imply v4 is being developed alongside v3, however indeed without formal confirmation, official releases, or any documentation whatsoever.
https://www.firegiant.com/blog/2015/6/2/wix-online-meeting-68-highlights/
https://www.firegiant.com/blog/2017/7/11/wix-online-meeting-130-highlights/
UPDATE
WiX v4 (preview) has just been released, for more information see the main page:
https://wixtoolset.org/docs/releasenotes/
https://wixtoolset.org/docs/intro/
I downloaded the WiX Toolset v4-rc.2 yesterday and was IMMEDIATELY disappointed. There is NO documentation giving even the slightest hint what the new XML schemas are and how they were related to or superseded v3. Also, nothing, NOTHING was done to support custom actions in .NET 6 or 7. These .NET versions have been available for several years now and Firegiant has had PLENTY of time to update all of this. I see NO ADVANTAGE whatsoever in moving to v4. Come on #robmen you are completely missing the mark on supporting this update. Do you seriously think the development community has the time to read your github v4 repository so we can discern how to use this update?? The only grace I extend to you is it is a tough job to support a product that has many users and each user's particular needs, but you decided to do this and you are failing miserably...
Actually, if this project had been open-sourced instead of taken private, the community would have advanced the functionality of this product by leaps and bounds over the years. I have been a WiX user since 2013 and it remains largely unchanged.
Case in point:
How long has .NET 5 been out?
How long has .NET 6 been out?
How long has .NET 7 been out?
.NET 3.5.1 is ridiculous...
Related
There is an existing issue with Wix SQL extension not working with TLS1.2 enabled (https://github.com/wixtoolset/issues/issues/5543).We would like to consume this fix as most of our installation environment is shifting to TLS 1.2.The issue seems to be fixed and available in Wix 3.14 Dev builds but we would like to use RTM build for our need. So any idea on when is the next RTM release for Wix Toolset.
There may never be an "RTM" build of WiX v3.14. From http://www.joyofsetup.com/2018/05/19/wix-v314-details-about-wix-pi/:
The purpose of WiX v3.14 is to help you get to WiX v4.0, so it’s a release you use briefly before moving on to WiX v4.0, not adopt for the long term.
If there is a build we mark "stable," it will come out around the same time as WiX v4, so it serves its purpose to help migrate to WiX v4.
WiX v4 will enter alpha this summer.
WiX 3.14 release has been the topic for the past few wix-devs online meetings. I think there was a meeting today but the invite was messed up and don't see it posted on the firegiant blog yet.
http://lists.wixtoolset.org/pipermail/wix-devs-wixtoolset.org/2019-June/001373.html
https://www.firegiant.com/blog/
Short version is 3.14 is really close. I dev build containing VS2019 support was released three weeks ago:
https://wixtoolset.org/releases/development/
WiX 4.0 is years away to be honest. I wouldn't worry about it at all right now. In fact the WiX v4 templates were recently removed from Votive (Visual Studio Extension) so that should give you an idea how far out it is.
We are using Inno Setup and are planning to replace this with WiX. But when evaluating and playing around with WiX, I felt the declarative manner has some limitations compared to programmatic setup solutions.
Moreover I found out that the WiX documentation is rather sparse. So I came across Wix# (WixSharp) which promises to create WiX source code programmatically via script files written in C#.
However we've had some negative experiences with very small companies and even 'one-man-shows'. Therefore I just wanted to ask about your experiences with Wix# (WixSharp) or even other good alternatives out there. Can you report some advantages or limitations?
Wix# looks like an improvingly good bet on the "Will it be around next year" score; see below. And note that Custom Actions are now quite straightforward to build in Wix#.
From this article:
http://www.codeproject.com/Articles/31407/Wix-WixSharp-managed-interface-for-WiX
In July 2014 Wix# was rereleased under more liberal MIT license and it is now hosted on CodePlex.
https://wixsharp.codeplex.com/
In August 2014 UI Extensions to Wix# were released and described in this CodeProject article: "Wix# (WixSharp) UI Extensions".
http://www.codeproject.com/Articles/804584/Wixsharp-WixSharp-UI-Extensions
The fact that new Wix# features are coming out bodes well for the product.
Since Wix# is built on top of WiX and Windows Installer technology, it can only do things that are possible in WiX. When Wix# runs out of gas... WiX can do a lot of things that aren't directly available in the Wix# C# syntax, so you can generally use WiX XML technology directly to bridge the gap. Also see my answer here for additional examples of making Wix# generate the .wxs XML, and then including additional WiX XML code and invoking Candle and Light to build the resulting combined XML into an MSI.
Programatically building an MSI
Below is a quick, non-exhaustive list of WiX and Wix# pros and cons that I have experienced thus far.
WiX/Wix# Pros:
It generates real Windows Installer MSI files.
The uninstall feature is "free"; you automatically get a reliable uninstaller.
The Server Admins in my environment readily accept MSI files for things I as a developer want to install, because they trust the MSI technology and the uninstall feature.
Windows Registry entries are included in the "free" uninstall you get, as long as you create them using WiX or Wix# native syntax and don't merge .reg files--you won't get a registry entry uninstall that way.
WiX/Wix# Cons
Because it's limited to the Windows Installer feature set, some
"procedural" things are harder to do in WiX and Wix#
WiX Pros
Lots of great examples and support resources ("How do I .. in WiX") are available on the Web.
The utilities for harvesting registry entries and putting in XML WiX statements work well.
WiX Cons
As a C# developer, I found WiX XML to be unintuitive to get started
with, working directly with XML files. Wix# and C# made more sense
than WiX at the start.
Wix# Pros
Custom Actions are now simple to implement in Wix#.
Wix# integrates neatly with Visual Studio. I'm currently using it with VS2013.
Wix# and C# made more sense than WiX XML at the start. Better starting point.
Wix# is helping me learn WiX in a more approachable way. Seeing what does and doesn't work in Wix# helps in understanding WiX.
Wix# Cons
Wix# examples are currently a lot harder to come by on the Web. Often it is necessary to research the WiX how-to and then figure out how to apply it to Wix#.
I didn't find an automated path for harvesting registry entries and expressing in WiX# C# code. I translated the .reg file entries manually. It's necessary to have registry entries in Wix# "RegValue(" statements to get the automatic uninstall capability for registry entries.
Note: Developer added this feature in a January 2015 release. I haven't tried it yet.
I will say, doing things in WiX/Wix# that were simple & obvious in procedural installers, like NSIS, and past generation script-based installers (e.g., older Wise editions) often takes extra research and creativity in WiX/Wix#.
Overall, I'm betting on Wix# as a growth technology and a safe bet for current and future use. Worst case, you'd still have your .wxs files, and could change over to using a straight WiX XML approach to building installers, and you'd still be getting value out of the Wix# time investment.
RECENT UPDATES TO THE Wix# Product for Common Installer Tasks
As of January 2015. See: [https://wixsharp.codeplex.com/releases/view/610843][1]
Can now import a .reg registry settings file instead of hand-coding registry class entries
Additional support for Windows Config file modifications
Specific support for Windows Service installations
Support for passing parameter values to Deferred Custom Actions, with all WiX supporting infrastructure properly auto-generated
Support for absolute path in target system directory, with all WiX supporting infrastructure properly auto-generated
WiX has been around for quite a while and has a lot of community support. I've been doing setup (in my spare time :) ) for about 8 years and have never found anything I couldn't reasonable do in WiX.
This is the first time I've seen WixSharp. My first reaction would be how stable is it given it's 0.1.42 at the moment. I'd also be concerned about how much of the MSI schema is actually implemented in WixSharp. It looks interesting, but I'd be more comfortable with an XML file. I don't really see any advantage to do it in C#.
I have to write an installer and want to use Wix. The documentation on the website is not working and I like learning by example. Does someone know an open source project with good WiX source files, preferable for Wix version 3.0 or 3.5.
SharpDevelop is one of the bigger ones that I know that uses WiX. I also have a project called IsWiX that sits on top of WiX to author Merge Modules. IsWiX uses WiX/IsWiX itself to do it's own installer so there are some examples there. Finally there is a new WiX book out that you might want to purchase and read through.
WiX: A Developer's Guide to Windows Installer XML
TortoiseSVN uses WiX and there is a blog outlining some issue they had.
Edit: TortoiseSVN Blog: On Major Upgrade Problems with WiX
A few Codeplex projects that use Wix:
Wix, of course
SytleCop
TortoiseHg
VisualHg
There's a open source WIX Sample projects available here, which were very helpful in getting me started.
And don't forget to check out the Powerpoint slide(s) in the slides folder.
I found it really valuable in getting me started with WiX compared to the Wix Tutorial on the Wix website or the Packtpub books.
https://github.com/rstropek/Samples/tree/master/WiXSamples
i have published my project and exe file has been created....
now i want to make a installer with some other applications...i have
myproject.exe
.netframework 3.5
adobeflashplayer.exe
now i want to make a single installer that should install these application at once...how should i do that
Regarding packaging the .NET Framework 3.5 into your setup project, read Microsoft KB Article 324733. In short, you can't do what you asked for. You can specify .NET as a pre-requisite, and you can detect that the pre-req is missing, but the user must elect to install .NET separately, and must run a separate MSI to install .NET.
About Adobe Flash, I don't know.
"You can't do what you asked for." --
Well, at least not with the deployment model offered by Microsoft inside Visual Studio.
Pay $$$ and get InstallShield (or some such) and, oh, spend A LONG TIME learning it, then its cake !
I am looking for a replacement for InstallShield. Unfortunately we only have 1 license for InstallShield and it was installed on a developer's machine. I'm considering switching over to WiX, but after reading the documentation there is a Product ID GUID, Upgrade Code GUID and a Package GUID.
I also know GUID's were created by InstallShield. If I switch over to WiX can I start using new GUID's or do I have use some of the GUID's created by InstallShield? If an upgrade to a product is released will switching installers hose customers who had the old installer?
In order to be able to upgrade your old package, you need to use (and find out) your old upgrade code.
The Package code should be different (ie autogenerated) for every different MSI (the MSI can be cached with the guid as cache key).
The Product code should be different between major upgrade, but is important for minor upgrades and patches. I haven't used wix to do anything else than major upgrades right now, so I don't know the exact details
See the MSDN article on patching and upgrades as well as the WiX Tutorial
It may also be interesting to know that you can decompile the msi that was generated by Installshield with the dark.exe tool (included in wix). This will recover the upgrade code among other things.
I'd also suggest getting a copy of The Definitive Guide to Windows Installer, I highly recommend the book and don't know how I would have migrated to WiX without it. It's a very low level overview of Windows Installer, if you understand the book then WiX becomes pretty easy.
I know you've already accepted an answer, but make friends with Orca if you haven't already done so.
Orca helped me understand MSI and what WiX was doing under the covers. In your case it would make finding the Upgrade (or any) GUID very easy.
This question may also save you some time and headaches :)