다음을 통해 공유


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

  • Anonymous
    March 03, 2008
    PingBack from http://msdnrss.thecoderblogs.com/2008/03/03/changing-the-file-extension-of-wix-extensions-from-dll-to-wixext-revisited/

  • Anonymous
    March 04, 2008
    Can't you use a double "dot" extension like "*.wixext.dll" ? DM

  • Anonymous
    March 04, 2008
    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.

  • Anonymous
    March 10, 2008
    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

  • Anonymous
    March 20, 2008
    The comment has been removed