Changing the file extension of WiX extensions from .dll to .wixext (Revisited)


In one of my last blog posts I wrote about how we would be changing the file extension of WiX extensions from .dll to .wixext. Well, it turns out that we won’t be doing it for technical reasons.

A WiX extension is really just a .NET assembly with an embedded XSD and wixlib. While it’s technically possible to rename a managed assembly from .dll to .wixext, it will add a limitation that we didn’t want to enforce. If WixExtensionA.wixext had a runtime reference to WixExtensionB.wixext, then the runtime cannot find the file if it doesn’t end in a .dll. I personally think that’s a limitation that the .NET Framework did not need to impose, but I also do not know all of the details. I’m sure there was a good reason to impose that limitation. We also had some problems with Visual Studio not letting us add project references to other WixExtensions that didn’t end in a .dll.

As a result, we will not be doing this change and the current behavior will remain.

Comments (5)

  1. DM says:

    Can’t you use a double "dot" extension like "*.wixext.dll" ?

    DM

  2. MSDNArchive says:

    That’s a great idea. However, at that point, it’s more of a convention than a file extension. The OS just looks at the last part (.dll) and will ignore the .wixext part. We won’t get a lot of the benefits that I pointed out in my last blog. Right now we use the convention WixXExtension.dll where X is something like IIs, NetFx, Office, etc. which is essentially what you’re proposing.

    If I’m missing something, though (which is entirely probable), please point it out!

    Thanks for posting.

  3. DM says:

    Hi Justin,

    Your Wix?Extension convention makes extension files look like this:

     WixIIsExtension.dll

     WixNetFxExtention.dll

    What I’m proposing is something like:

     IIs.wixext.dll

     NetFx.wixext.dll

    If I build myself a collection of extensions they could look like:

     MyDMTools.wixext.dll

     MyOtherTools.wixext.dll

    Another example, to search for all Wix Extensions you could use a syntax like this (sorry for my old DOS heritage):

    dir ?: *.wixext.dll /s

    A double dot extension may not be as useful as changing the .dll extension completely but it sure looks a lot more dicoverable to me.

    HTH

  4. Eric says:

    Yup. Then your dialog box filter can be *.wixext.dll