Category Archives: Uncategorized

IsWiX 4.14.1 Released

The origins for IsWiX began back in the golden era of blogging (2008) when I first wondered if I should roll my own tool.

About a year later I was firmly working on project WiXShield

I had just learned LINQ to XML and WPF but I wasn’t really comfortable with WPF yet so I decided to use WinForms for the project. Today I begin the work of undoing that decision by releasing IsWiX 3.14.1.

In this release, the FireworksFramework component of WiX has been rewritten in WPF and split out into a reusable NuGet package for other people who want to write IsWiX like applications. Fireworks / IsWiX was originally conceived this way but were merged back together years later out of convenience. Now that we have better CI-CD pipelines and Nuget packages they are once again separate entities.

IsWiX 4.13.1 Released

A couple of years ago I added support for authoring AppX packages to IsWiX. With this release I’ve caught up and added support for authoring MSIX packages.

There is a catch though. The ability to author AppX and MSIX packages isn’t found in the free version of Windows Installer XML. It’s found in the FireGiant version. This means installing the FireGiant branch of WiX or installing the FireGiant WiX Expansion Pack.

You can find out more on FireGiants website but basically WiX allows you to build an MSI, AppX and now MSIX all at the same time using one WiX project. IsWiX provides graphical templates and graphical designers to make that a lot easier. How easy? Consider the desktop-tutorial found in iswix-tutorials. With FG-WiX and IsWiX you simply follow the steps in the desktop-tutorial and then add the following:

  • Add a reference to FgMsixExtension.wixext in Votive
  • Use the MSIX designer in IsWiX to define a new MSIX element providing it the subject name from your code signing certificate
  • Assign the RSA thumbprint of your code signing certificate to the MSBuild property MSIXCertificateThumbprint during the build.

That’s pretty much all there is to it to create a basic MSIX containing one app. So if you have a need to create APPX or MSIX packages then consider IsWiX and FG-WIX for your solution. If you have more questions or need assistance I’m always available to assist on a consulting basis.

A new release of IsWiX has been published here at GitHub.  There are multiple bug fixes and one major new feature in this release.

 

Created new Differences viewer to show pending changes since your last save (Help | View Differences )

Update to .NET 4.6.2

Deprecated support for VS2010-VS2012  (Please let me know if this is a problem and I’ll come up with a quick solution)

Update License Agreements (Third Party documenation)

Correctly Version VS Extension

Fix document state management

Make URLs clickable in Help | About

Split AddIn out to it’s own solution for people who don’t have the VS Extensibility SDK installed

Conditional code signing during build only to make it easier for people to build source

Little fixes here and there that weren’t tracked

 

IsWiX 4.11.18042.1 Released

A new release of IsWiX has been published here at GitHub.  There are three bug fixes and one new feature in this release:

AppX – Don’t display information dialog unless use clicks hyperlink.

FilesAndFolder- Properly display destination files that don’t have an extension.

General Information- Generate new guids if guids are empty (…) alternative

ShortCuts- Always expand destination tree structure.

Never used IsWiX or don’t undertand how it works?  Then check out our training materials at iswix-tutorials.

I just used IsWiX to create an n-tier deployment solution consisting of client, database and iis/asp.net pieces.  The solution contains four bootstrappers, six setup projects and seven merge modules.  With IsWiX it only took 17 hours.    On YouTube I have videos of being able to create  a desktop application, windows service and website in just 2-3 minutes.    This is the application code *AND* the installer code.     Are your tools that fast?

 

 

IsWiX 4.11.17128.2 Released

IsWiX 4.11.17128.2 is now available here.

A few months ago I mentioned our Visual Studio 2017 Support Roadmap.    Microsoft introduced many breaking changes in VS2017 including breaking an existing installation of VS2015 by deleting EnvDTE from the system.  Wow, I guess they don’t remember their own Component Rules they wrote 20 years ago to address DLL hell.

To be honest, with VS2017 problematic and the WiX team was debating what their plan was going to be, I didn’t really have a plan. (Is hope a plan?)    WiX ended up taking the approach of splitting Votive out of their bootstrapper.  I personally think this is a bad user experience but oh well.

With VS2017 shipped on March 7 and WiX shipped on May 5 I decided it was time to take a look and see what the way forward would be.  At first I started down the path of writing a custom action to call the new COM interop provided by the VS team when I realized that the WiX team had already done this work in the VS extension.  Sweet.   Then I hit another wall.  Visual Studio no longer scans the ProjectTemplates directory when you call DevEnv /setup.

Sigh.

At the end of the day I rewrote the VS Extension to distribute the project templates as part of the VSIX manifest deployed via MSI.  The end result?  An ISWIX installer that behaves just like it always has.  No  bootstrapper,  no separate VSIX packges… just one MSI that registers the AddIn and Project Templates for one to many Visual Studio 2010 – 2017.

Man I love it when a plan comes together!  OK, fine, I love it when I just get lucky every once in awhile.   So there you go, IsWiX now supports VS2017.  You can get it here.

IsWiX 4.1.17105.1 Released

IsWiX 4.1.17105.1  has been release and can be found over here at GitHub.

GitHub?

Yes, GitHub. Although we’ve been happily using CodePlex for the past 7 years we are being forced to move because Microsoft has decided not to bother trying to compete in this space. It’s a shame because CodePlex used to be the .NET platform of choice and could have been easily updated to support Git since TFS/VSTS supports Git.

This attitude from the new Microsoft is also why I was forced to move my company website to HostGator / WordPlex.  The Office 365 team decided they weren’t going to bother supporting SharePoint public websites anymore even though I was perfectly happy with that product also.  I figured I might as well switch from Blogger to WordPress while I was at it.

With all that out of the way…..  So, what’s in this release you ask?

  • Support for FG-WiX / WEP  AppX packaging.  ( This will be it’s own blog article soon. )
  • An anonymous IsWiX user contributed funds for me to purchase an ISWIX LLC code signing cert so that IsWiX could be signed once again.  Thank you!   I’m sorry it took a few months, dealing with Dun and Bradstreet is a real pain.
  • Migration to GitHub.

The AppX packaging is an interesting new feature and our first support for a WiX feature that isn’t available in the FOSS version of WiX.  I paused when considering to do that feature but thought it would be interesting and useful enough to go ahead and do it.

 

IsWiX Visual Studio 2017 Support Roadmap

I just wanted to put an FYI out there that IsWiX will not support Visual Studio 2017 at launch date.  Microsoft has made substantial changes to the way VS is deployed and created a lot of complications for extension developers.  

In order for IsWiX to function in VS 2 extensions need to be installed:

WiX Votive
IsWiX AddIn

The WiX votive is required to load .wixproj based projects in your solution and is the foundation for IsWiX’s own multiproject solution templates.

The IsWiX AddIn is required to send a .wxs document to the IsWiX.exe.

WiX appears to be moving in the direction of removing Votive from their installer and shipping it separately via the VS marketplace.    Assuming the work is completed (there is currently no ship date announced for v3.11.0)  it will likely require the setup developer to do an additional installation step prior to being able to load an existing solution or create a new one.

As sub optimal as this is, it appears to be set in stone and I have no intention of spending any energy on IsWiX until  I see the final landscape of what I have to deal with.  I will likely do something similar to what they are doing or I might make a bootstrapper  to automate installing WiX, the votive extension and the IsWiX AddIn extension.

FWIW, while this has been the worst, ever release of VS has caused pain for me as either a user of WiX or a user of InstallShield.  It just takes time for this to catch up.   For this reason I *ALWAYS* recommend keeping your application projects in one solution and your installer projects in another.  This way you can ensure you won’t be blocking your application developers from moving forward to the latest version of VS while you continue to compile against the tried and true version you’ve always used.     They need to be cutting edge,  we do not need to be.

IsWiX 4.0.17001.1

Happy New Year!
 
I’ve published a new version of IsWiX with a pretty important (to me and a few of my customers) bug fix.  I actually did the work yesterday and couldn’t decide if I wanted it to be the only release of 2016 or the first release of 2017.  Silly, I know…  that and the evenings festivities were calling.
 
Anyways let’s talk about the fix.  The files and folder designer code is a bit scary.  I didn’t write it and I appreciate the efforts of the person that did.  That said,  it had a pretty bad performance issue.  Most people only put a handful of directories and files in any given merge module so most people would have never seen it.    However if you are working on website and find yourself dealing with 1000 directories and 10,000 files in a single merge module it suddenly becomes quiet unusable.
 
But first a back story….
 
Many people probably don’t know that IsWiX had a design goal of creating sorted documents with deterministically unique (predictable)  Id attributes and GUIDs.   The reason for this was the company I worked at did *A LOT* of branching and merging and we wanted to make it as easy as possible to branch and merge IsWiX generated .WXS files.  
 
So every time Files and Folders updates it’s model it resorts the XML.  This usually isn’t a problem. However on really large documents it can take 5-10 seconds depending on machine performance.  When doing a drag and drop the process would go something like this.    Write the XML for a directory, sort,  process subfolders recursively.   So if you dragged a folder with say a 1000 subfolders you would see it get visibly slower and slower until it bogged down so bad you walked away hoping it would finish or just terminated the process.
 
I’ve done a simple fix remove the sort step and do a final sort at the end.  Now you see it update all the directories in the UI very quickly,  a 5-10 second wait as it does the sort and done.   If your documents aren’t that large  you probably won’t notice a difference at all.
 
You can get the new release here.
 
PS- It seems certain browsers have been complaining about anything downloaded from CodePlex. That really sucks.  IsWiX (and the WiX Toolset) is as safe as always.  If you have problems downloading just use a different browser.  If you still get issues be sure to “unblock” the file before installing.
 

AppX for Native Apps Thoughts

Five years ago, I wrote two blog posts where I explored the possibilities of AppX:

AppX Just Might Work

AppX Just Might Fail

I don’t work in Redmond or Schaumburg Itasca so I tend to not get caught up in the hype of new technologies and instead focus on what works for my customers TODAY.   Over the next few years Windows RT came (and went)  and the Windows Store continued to be pretty much irrelevant.  About a year ago there was some chatter of a Project-C.  I continued to have that “meh” feeling.

The a few months ago I read about some work that the Windows Nano team was doing to support installing per-machine  native apps using extensions for AppX.  Additionally the FireGiant team was developing an extension to support creating MSI and AppX from a single source code base.   Now I found this  REALLY interesting except that I don’t have any apps to deploy to Windows Nano Server.

Along comes BUILD2016 and FireGiant is now posting about creating MSI for Windows 8.1 and below and AppX for Windows 10  DESKTOP applications.  Flexera is also sending similar messages.   Ok, I’m really interested now. 

So it seems now some five years later that AppX just might work!

I am wondering what FireGiant will charge for this capability though.  It’s kind of sad to not see it in the core WiX Toolset as open source goodness.  Rob and Bob, like the rest of us, do have mortgages to pay after all. Maybe there will be options similiar to Visual Studio Community Edition for small business, open source and educational uses.

Slightly off topic I’d like to tie this into another possibly over hyped technology: Chocolatey

I want to like chocolatey. I really do.  I also want to like One-Get Package Management.  However the former is just a wrapper for installers of various quality  and the latter was never really finished and updated to support the latest chocolatey client.

Before anyone gets too offended… I’m not discarding chocolatey yet.  I’m wondering allowed… what if in a few years time everyone is on Windows 10  (Microsoft is pushing it hard after all),  most Choco packages are really AppX wrappers and Packge Management has excellent chocolatey support.

While I’m dreaming… What if we had a way of white listing choco packages in SCCM Software Center?   Oh the possibilities.

So in closing, while new and “modern” (oh I dislike that term)  usually disappoints me, I’m seeing reason to be optimistic today.   There could be a sea change coming to my world view soon.

IsWiX4.0.15284.1 Released

A month ago I announced a new version of IsWiX with support for WiX v4.0.  At the time I wrote the warning:

I tested all of the designers but there is a chance that one of my refactoring’s, well, sucked.  I’m sorry, I don’t have unit tests to know for sure.  If you find a bug, please report it and revert to IsWiX 3.0.  I will follow up with an IsWiX 4.0 fix in a matter of days possibly hours.

Sure enough, one of my updates did, cough, “suck”.  It seems I didn’t test all of my designers, rather only the ones that appeared.  I missed the fact that one of them wasn’t showing until I needed it to do some work for a client.  I opened up IsWiX and went to define a custom table and was really disappointed that it wasn’t there.  So I followed my own advice and downgraded to IsWiX 3.0, kept calm and carried on.  Eventually I had some time to go look at it and sure enough the IsValidContext() member simply needed to be refactored.  

The new and improved IsWiX can be found here.