Using WiX to create Windows Installer Packages

Posted November 14, 2004

Chat Date: November 9, 2004

Please note: Portions of this transcript have been edited for clarity

Introduction

Andy Q (Moderator):
Welcome to today’s chat. Our topic is Using WiX to create Windows Installer Packages. Questions, comments, and suggestions are welcome.

Andy Q (Moderator):
We are pleased to welcome our Experts for today’s chat. I will have them introduce themselves now.

Carolyn_MSFT (Expert):
I'm Carolyn, a developer with the Windows Installer team. I specialize in patching and upgrades and overall architecture.

RobMen_MS (Expert):
Rob Mensching created the Windows Installer XML (WiX) toolset in 1999. Over the years, Rob has been joined by five other Microsoft developers, Robert, Reid, ScottK, Derek, and Justin who were interested in the toolset. On April 5th, 2004 the WiX toolset was released as an official Microsoft Open Source project to SourceForge. Since then the toolset has been downloaded over 100,000 times and the community continues to grow beyond the core developers both inside and outside of Microsoft.

Robert_MS (Expert):
Robert Flaming is a Developer on dark. In his day job, Robert is a Developer on the Developer Division Build Team. Note: I'm minion Rob(ert), not Benevolent Dictator Rob

ScottK_MS (Expert):
Scott Kurtzeborn has worked for Microsoft for almost 3 years now and all of them have been on Office setup. Scott has worked on WiX in his free time since he was hired. As a contributor to WiX, or "minion", Scott continues to design and maintain the WiX custom action library. He also works on compiler support for the custom actions as well as other assignments that our "benevolent dictator" assigns him.

TylerR_MS (Expert):
Hello! My name is Tyler Robinson and I am the Program Manager for the Windows Installer.

One quick note for those of you who are interested. The Windows Installer 3.0 redistributable went live to the web yesterday and can be downloaded from <https://www.microsoft.com/downloads/details.aspx?FamilyId=5FBC5470-B259-4733-A914-A956122E08E8&displaylang=en>. The SDK documentation and tools are available as part of the Windows XP Service Pack 2 Platform SDK by clicking the "Windows XP SP2 SDK" link from <https://www.microsoft.com/msdownload/platformsdk/sdkupdate/>.

Now on with the "Using WiX to create Windows Installer Packages" chat! :)

Start of Chat

Derek_MS (Expert):
Derek Cicerone has worked for Microsoft for 2 years in the Microsoft Office group and works on the WiX compiler at night.

Andy Q (Moderator):
I'm Andy, Microsoft Communities business manager and your moderator for today, welcome all!!

Justin_MS (Expert):
I'm Justin Rockwood, WiX developer specializing in Votive, the Visual Studio plug-in. Day job: developer in Office group, Excel.

Reid_MS (Expert):
Reid spent two summers at Microsoft as an intern, first for Office and then for Windows. He's been working on WiX since his first summer, and kept going when he started as a full-time employee in February. Reid works on the WiX core, and wrote the patching support into WiX v2. His day job is with the System Definition Model team, working on Windows Server as part of the Dynamic Systems Initiative.

Start of Chat

Reid_MS (Expert):
Q:
Can WIX be used to create MSI patch (.msp) files? And if so, is there an example available?
A: WiX can be used to create .pcp files, which you can then use with patchwiz.dll to generate your .msp files. Check out the WiX.chm file under the PatchCreation element for more information.

RobMen_MS (Expert):
Q:
Do you have example WIX XML for install Windows services?
A: Adding a service:

<Component Id='bike.exe' Guid='00000000-0000-0000-0000-000000000000' Location='local'>

<File Id='bike.exe' Name='bike.exe' src='$(env.WIX)\examples\data\bike.exe'/>

<ServiceInstall Id='bike.exe' Name='BikeCourier' DisplayName='Bike Courier'

Type='ownProcess' Interactive='yes' Start='auto' Vital='yes'

ErrorControl='normal'/>

<ServiceControl Id='bike.exe' Name='BikeCourier' Start='install' Stop='both' Remove='uninstall'

Wait='yes'/>

</Component>

Reid_MS (Expert):
Q:
Can WIX be used to create MSI patch (.msp) files? And if so, is there an example available?
A: Also, there is a patching example as part of the CVS enlistment under the doc directory.

Robert_MS (Expert):
Q:
What is the most efficient way to generate the XML for the files and directories? Is there a tool that I can point at an existing install directory structure?
A: Tallow.exe has a feature to scan your directory and files. Please consider the component rules before continuing. see msdn topic "What happens if the component rules are broken? [Windows Installer] <https://msdn.microsoft.com/library/en-us/msi/setup/what_happens_if_the_component_rules_are_broken.asp>

TylerR_MS (Expert):
Q:
I need examples - from easy to moderate to complex.
A: Examples of what? Could you please elaborate? Thanks.

Robert_MS (Expert):
Q:
WiX on MSDN?
A: Sorry, could you clarify the question?

Carolyn_MSFT (Expert):
Q:
Dear sir, Kindly tell me, when will the 64 Bit version of MS Windows Server 2003 be available?
A: This chat topic covers using WIX to create Windows Installer packages. This question is outside of the chat topic. However, you can find information about Windows Server release plans at https://www.microsoft.com/windowsserver2003/evaluation/overview/roadmap.mspx. At this time the Windows Server 2003 x64 release is scheduled for delivery in the first half of 2005. More details are available at https://www.microsoft.com/windowsserver2003/64bit/x64/default.mspx.

Justin_MS (Expert):
Q:
WiX built into VS>net to take advantage of the best way to code (intellisense)
A: Right now the best way to do that is to copy the .xsd files into the Visual Studio directory where all of the other .xsd files are (the exact location I forget right now). Do a search on .xsd under the Visual Studio installation directory to find it. I do want to mention, however, that there is a new tool called Votive that will have WiX Visual Studio projects built into it.

TylerR_MS (Expert):
Q:
What is the recommended way to produce a multi-language installer? The actual GUI - the installed product is already handled without problems. I read some about using embedded transforms - this the path? How to actually do it?
A: MSDN has some excellent documentation on localizing Windows Installer packages. Please see https://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/localizing_a_windows_installer_package.asp

RobMen_MS (Expert):
Q:
I’ve seen a couple of open source attempts at a GUI editor for WIX XML. Do you know of a useful GUI editor?
A: I have seen 4 or 5 "WiX GUI" tools on SourceForge. Only one or two seem active although I have seen discussion on the wix-users@lists.sourceforge.net where people are discussing getting more active. There is also a tool to be added to the WiX toolset soon called "votive" that will plug-in to Visual Studio... maybe people will jump on that and improve it.

ScottK_MS (Expert):
Q:
Is WIX going to be integrated into VS 2005? Will there be a gui editor?
A: There are no plans for WiX to be integrated into VS at this time. There is work being done (mainly by Justin) to create a new tool called Votive that will be released some time early next year. This new tool will be an extension to VS that will allow you to get Intellisense support, F5 support for candle and light, and WiX projects as part of your VS solution.

Andy Q (Moderator):
Remember if you want a question to be answered by our experts please use the "submit a question" radio button. They won’t be answered otherwise

Reid_MS (Expert):
Q:
What products does Microsoft use Wix for building installs for?
A: WiX gets used all over the company, by groups big and small. A subset of that list would be Office, SQL Server, parts of Windows and some projects within Microsoft Research.

Derek_MS (Expert):
Q:
How do you create GuID numbers?
A: You can get the guidgen program from the Visual Studio (or perhaps other places on the web). Just tell it to create a Guid. This will give you something like the following: "{E63A70AC-4C95-468f-8A0D-BBF26E609716}" which you can then put into WiX sources by stripping off the outer braces: "E63A70AC-4C95-468f-8A0D-BBF26E609716". You'll know when to use these special brace-less guids because the type of an attribute in the schema will be uuid.

Justin_MS (Expert):
Q:
What is Votive?
A: Votive is the new Visual Studio plug-in for WiX. It will allow you to have WiX projects, build them, have IntelliSense, and all of the other nice stuff that you get by working within Visual Studio. It will be released early next year to SourceForge.

Carolyn_MSFT (Expert):
Q:
Can we use the currently available Windows server 2003 64 bit download on the Microsoft site to build the Supercluster?
A: Information regarding the Windows Server 2003 x64 release can be found at https://www.microsoft.com/windowsserver2003/64bit/x64/default.mspx. This chat topic does not cover general Windows Server 2003 x64 questions.

RobMen_MS (Expert):
Q:
What are your future plans for WiX?
A: First and foremost, I'm wanting to drive towards stability. Few changes in the toolset mean people don't need to worry about deprecated features and such. Second, improving the documentation is very important. Documentation is obviously not good enough right now. Third, extending the CustomActions to cover more feature is important. Fourth, votive is a new tool probably showing up next year and there will probably be lots of work available in there.

Carolyn_MSFT (Expert):
Q:
Is there any plans or ideas to build direct authoring of MSP packages into WIX? We have many problems with using patchwiz.dll because of performance problems however this seems to be the only available method to build an MSP.
A: WIX has full support for building Windows Installer patches (MSPs). As to the performance issues with patchwiz.dll, the Windows Installer team is working on an update to patchwiz.dll that will contain a number of performance improvements to make building patches faster. Look for the updated version of patchwiz.dll to be made available in the Windows Server 2003 SP1 release timeframe.

RobMen_MS (Expert):
Q:
Can we get some examples of localization usng Wix? Specifically dealing with WXL files and the specific format of those files?
A: Absolutely, this is the next thing planned for me to blog about (it's a big topic for a chat). How about I promise you'll get a nice detailed tutorial on my blog no later than a week from today? I'll also make sure that tutorial makes it into the WiX.chm. Cool?

Reid_MS (Expert):
Q:
do you all have blogs, I know about Rob’s
A: Nope, Rob is the only one of the WiX core team with a public blog.

Robert_MS (Expert):
Q:
Robert_MS, well WiX documentation being put on MSDN, and examples of using WiX to do things as MSDN really is every developers dream documentation website
A: Ah.. thanks for the clarification. No plans for adding WiX to MSDN documentation. The wix.chm is available via source forge: https://sourceforge.net/projects/wix/. Documentation is one of the lagging features to the WiX tool set. Other frequent sources of help are examples, dark (the decompiler), reading the code (leveraging open source-ness). There is also the growing community of experts on wix-users@lists.sourceforge.net.

ScottK_MS (Expert):
Q:
I need examples of Wix in real settings. From start to finish this is how you would install X application (1 exe and 3 dll's for instance) into the /program files/my app directory with short cuts and a nice gui asking for a license.
A: The "first" example available on SourceForge illustrates how to get something installed to the /program files/my app directory however that's about all it illustrates. More examples will be coming in the future. Note that since WiX is an open source community, anyone is welcome to submit examples back to the community for everyone's benefit.

Andy Q (Moderator):
For those new to the chat - Our topic is Using WiX to create Windows Installer Packages. Thanks for joining!

RobMen_MS (Expert):
Q:
What is currently used at Microsoft to created and edit their WiX files used for Microsoft product installs?
A: Personally, I use either Visual Studio or notepad2. Basically, as far as I know, most people use their favorite XML/text editor.

Derek_MS (Expert):
Q:
When using fragments, how does Wix handle deleting the files on uninstall? If I specify the files in my main wxs file, they get deleted, but they don't if I use a fragment file.
A: Using fragments is no different than not using them in terms of the functionality that is put into the actual msi file. What is likely happening here is that the authoring in the fragment is not actually getting into the msi file, thus it doesn't work. I would suggest downloading Orca to view the msi that WiX creates and ensuring that the msi is identical from when you do and don't use fragments. Remember, the only way a Fragment gets included in the msi is if you use a *Ref element (like ComponentRef and FeatureRef) to pull in some of the authoring from within the fragment.

TylerR_MS (Expert):
Q:
Is there any plans for making the source available for patchwiz.dll? This would help for patching situations which are very complex and involve many levels and products.
A: There are currently no plans to make the source for patchwiz.dll available. If you have specific requests for improvements to patchwiz.dll, please email them to MSIWISH@MICROSOFT.COM.

RobMen_MS (Expert):
There are plans to have MSBuild tasks for WiX. Someone internally has expressed interest in doing so in the VS2005 Beta2 time-frame. Of course, once VS2005 is officially released, we will definitely have MSBuild tasks.

Carolyn_MSFT (Expert):
Q:
What separates WiX from NullSoft Installer (NSS?)?
A: WiX is an authoring tool for creating Windows Installer (MSI) packages. NullSoft Installer is an installation technology. You can't really compare WiX to NullSoft since they don't represent the same thing. The NullSoft Installer is an alternative installation technology to Windows Installer. The Windows Installer technology offers a number of features, including self-healing, advertisement (install on first use), and transactional installation (rollback) among other things.

Robert_MS (Expert):
Q:
When using fragments, how does Wix handle deleting the files on uninstall? If I specify the files in my main wxs file, they get deleted, but they don't if I use a fragment file.
A: In the file element add an attribute Assembly=".net"

Reid_MS (Expert):
Q:
When will MSBUILD tasks be available for WIX?
A: As RobMen said: There are plans to have MSBuild tasks for WiX. Someone internally has expressed interest in doing so in the VS2005 Beta2 time-frame. Of course, once VS2005 is officially released, we will definitely have MSBuild tasks.

Robert_MS (Expert):
Q:
It's been a while but I had trouble creating a wix file for installing a .NET assembly into GAC. Is this complicated and can you provide an example?
A: Add Assembly=".net" to the file element

Reid_MS (Expert):
Q:
Does wix currently support all the new features of MSI 3.0?
A: Yes, we are currently up to date on support for MSI 3.0. This mostly involved adding support for generating pcp files, which you can then use to generate your actual patch (.msp) files.

RobMen_MS (Expert):
Q:
RobMen: The WXL files you refer to - are those for multiple languages in the same MSI, or just for building several different MSIs with different languages from the same source?
A: I'm not aware of any way to create an MSI file that has multiple languages in it. You can create language transforms then store those in your MSI. So, all WiX will currently do is help you create multiple MSIs, then you can create the transforms between them. .wxl files are intended to help you create MSI files in different languages easily.

Carolyn_MSFT (Expert):
Q:
Can we call the functions in PATCHAPI.H safely? Will they be supported in future versions of Windows Installer?
A: PATCHAPI.H is not a public header for the Windows Installer technology. PATCHAPI.H is the public header for the delta compression patching support in Windows. Generally future versions of Windows will maintain support for public API. You can find more information on binary delta compression in the whitepaper available at https://www.microsoft.com/downloads/details.aspx?FamilyID=4789196c-d60a-497c-ae89-101a3754bad6&displaylang=en. The header for Windows Installer functionality for building patches (MSPs) is PATCHWIZ.H, and yes, this will be supported in future versions of Windows Installer. The header is available in the Windows Installer SDK.

ScottK_MS (Expert):
Q:
I use a CustomAction to set a virtual directory for a web site I'm installing. It installs fine, but it is not removed on uninstall. What am I doing wrong?
A: I assume you mean that you're using the WiX custom actions to install your virtual directory to IIS as part of your MSI package install. The WiX server custom actions associate every installable resource (web site, virtual dir, user, etc.) with a component and the resource is installed and uninstalled as the component is installed and uninstalled. Whatever your problem is, you should be able to diagnose what's going on by looking in a verbose install and uninstall log file for the state of the component your virtual dir is associated with. If the component is being uninstalled in the uninstall log, then the virtual directory should be removed as well. If it's not, then you may have found a bug in the server custom actions and you should report the bug using the Source Forge bug reporting tool. Please include verbose log files in your bug report.

Justin_MS (Expert):
Q:
Will Wix ever the ability to validate the MSI or MSM files it has built? I mean will it invoke the MSIVAL and or MSIINFO?
A: MSI validation will not be an automatic step in the WiX compile/link process, the goal of WiX is to eliminate (or at least cut down on :)) any validation errors. There may be support as part of the build process in Votive, however.

Reid_MS (Expert):
Q:
Will Wix be modified to be more MSBUILD-friendly? I would like to avoid rebuilding an .MSM file if the input files haven't changed - will this sort of dependency information be made available so that MSBUILD can use it?
A: WiX supports this scenario correctly, but needs MSBuild tasks to make it visible. See the previous question about MSBuild tasks for when those'll be out.

Robert_MS (Expert):
Q:
I don't see the .chm as a separate download. Is it part of the binaries or the sources on SourceForge?
A: yes. Other frequent sources of help are examples, dark (the decompiler), reading the code (leveraging open source-ness). There is also the growing community of experts on wix-users@lists.sourceforge.net.

Robert_MS (Expert):
Q:
Robert_MS, well WiX documentation being put on MSDN, and examples of using WiX to do things as MSDN really is every developers dream documentation website
A: Justin mentioned Votive is considering adding F1 support.

Reid_MS (Expert):
Q:
what is Robs Blog address?
A: https://blogs.msdn.com/robmen

RobMen_MS (Expert):
Q:
Do you expect to see any vendors tools such as Wise and InstallShield to output or store source configuration files corresponding to WiX schemas? I notice that some save in text or xml today but none apparently WiX compatible.
A: I am not a lawyer, but my understanding of the CPL (the WiX toolset's license) allows vendor tools (such as InstallShield, Wise, and ZeroG) to output to the wix.xsd format and use the WiX tools to build MSI files. Personally, I think it'd be wickedly cool if the vendors built to the WiX toolset but that obviously isn't my call. <smile/>

TylerR_MS (Expert):
Q:
Does Wix represent the future of MSI? Maybe MSI 4.0?
A: WiX is a toolkit for authoring Windows Installer packages, similar to tools you might already be familiar with like Wise and InstallShield. The Windows Installer is the underlying technology that any of these tools use to install the MSI packages they create, and is therefore a completely separate technology.

ScottK_MS (Expert):
Q:
Is easy to create an upgrade path from one wix package to the next release of the same package? Do any examples exist?
A: I'm not sure if you are referring to problems you might have with upgrading from one version of WiX to the next or with authoring your own product in such a way that upgrades from one version to the next are clean.

To answer the first concern: it's a constant goal for WiX to be backwards compatible from one version to the next, however from time to time schema and compiler changes are "breaking changes" and require the user to make some modifications to their package authoring. We try to keep these types of changes as rare as possible, but solid innovation sometimes requires it.

Justin_MS (Expert):
Q:
There are a couple of issues that make deploying .NET assemblies problematic. When deploying to the GAC, the assembly file version is completely ignored. The other is a nasty caching issue. Is there anything WiX could to ease the pain?
A: Can you clarify the problems you are experiencing?

RobMen_MS (Expert):
Q:
Robmen: Ok, thanks, that makes things clearer. The obvious followup question - is there a way to use WiX to create these transforms? If not, what would I use to generate them? And finally, how can I store one of these transforms inside my WiXgenerated MSI?
A: There is currently nothing in the WiX toolset to help you out with the transforms, although I've entertained the idea a number of times. It'd be great if you could open a FeatureRequest on SourceForge (https://wix.sourceforge.net) to track this issue. In the meantime, msitran.exe will generate transforms between two MSI files and msidb.exe (or wisubstg.vbs) can add the transform to the MSI.

TylerR_MS (Expert):
Q:
Do you have any plans of supporting unsigned device driver installations?
A: This topic was covered in last month's chat about DifX App and the Windows Installer. The transcript is available from: https://msdn.microsoft.com/chats/transcripts/windows/windows_101204.aspx

ScottK_MS (Expert):
Q:
Is easy to create an upgrade path from one wix package to the next release of the same package? Do any examples exist?
A: To answer the second question: WiX exposes everything that is available in the Windows Installer. Mechanisms for upgrading your package from one version to the next are (hopefully) clearly documented in the MSI SDK documentation. WiX.chm should help you translate what you see in the MSI SDK documentation into WiX XML. The WiX.chm is available on Source Forge.

TylerR_MS (Expert):
Q:
When will MSI 3.0 engine will be available generally?
A: The Windows Installer 3.0 redistributable went live to the web yesterday and can be downloaded from <https://www.microsoft.com/downloads/details.aspx?FamilyId=5FBC5470-B259-4733-A914-A956122E08E8&displaylang=en>. The SDK documentation and tools are available as part of the Windows XP Service Pack 2 Platform SDK by clicking the "Windows XP SP2 SDK" link from <https://www.microsoft.com/msdownload/platformsdk/sdkupdate/>.

Reid_MS (Expert):
Q:
When will you finish MSI 3.0 support for WiX?
A: Patching support (which was the last bit of MSI 3.0 support) went into WiX a bit ago. You can find it underneath the PatchCreation element in the WiX.chm as found on SourceForge. Was there something else you were referring to?

TylerR_MS (Expert):
Q:
Are there / will there be any MS classes or clinics on Wix?
A: There are no current plans for any WiX classes.

RobMen_MS (Expert):
Q:
Feature request: I would like to see an attribute added to the places that the XML files need GUIDs so that they can be auto-generated by Wix. For example, I ALWAYS want a new GUID for the package ID every time I recompile to an MSM or MSI.
A: In general, auto-generating GUIDs is a very dangerous thing. There are very specific places where it's safe to do so. For example, the package ID. In those cases, you can use a GUID that is made up of all ?'s.

Reid_MS (Expert):
CareBear: Yep, that's in.

Reid_MS (Expert):
Q:
What features are being considered for tallow?
A: Tallow has pretty much been left up to the community. We're not currently planning to add any features, but we'd welcome any contributions in from users and community developers.

Robert_MS (Expert):
Q:
Are there / will there be any MS classes or clinics on Wix?
A: Alternatively, the wix.chm is available via source forge: https://sourceforge.net/projects/wix/. Other frequent sources of help are examples, dark (the decompiler), reading the code (leveraging open source-ness). There is also the growing community of experts on wix-users@lists.sourceforge.net.

RobMen_MS (Expert):
Q:
not to go to far off topic but what does a Guid do again?
A: GUIDs are "Globally Unique IDentifiers" and are used in many places in the Windows Installer where a globally unique identifier is required. The MSI SDK talks more about where GUIDs are used and why.

Justin_MS (Expert):
Q:
Is it in the plans, or do you know of any other, that have started or done some work on a GUI for WiX?
A: There are some projects on SourceForge that have started this endeavor. I actually don't know too much about them. Additionally, there will be some minimal GUI editing in a future version of Votive, the new Visual Studio plug-in for WiX (which will be release at the beginning of next year).

Robert_MS (Expert):
Q:
Are there / will there be any MS classes or clinics on Wix?
A: Also, there is this talk on RobMen's BLOG: A live one hour Windows Installer XML introduction by Rob Mensching. <https://blogs.msdn.com/robmen/archive/2004/09/23/233684.aspx>

Carolyn_MSFT (Expert):
Q:
If you install an assembly in the GAC with a file version of 1.0.0 and assembly version of 1.0.0, then another package installs the same assembly with an assembly file version of 1.0.1 and assembly version of 1.0.0. The original version will remain.
A: In Windows Installer authoring, you need to add the FileVersion name-value pair to the MsiAssemblyName table along with the other assembly identity information. If you install on a machine with at least .NET Framework version 1.1, you'll then achieve the behavior you desire. So for GAC assemblies, you'll typically author the Name, Version, FileVersion, PublicKeyToken, and Culture name-value pairs in the MsiAssemblyName table. As long as you install on machines with at least .NET Framework v1.1 and minimum Windows Installer version 2.0, you'll have full support for this method. As a side note, WiX has support for including this information.

TylerR_MS (Expert):
Q:
Can we ask Windows Installer questions as well or just Wix?
A: We would prefer to stay on topic and address WiX questions during this chat. Future chats will cover general Windows Installer questions.

ScottK_MS (Expert):
Q:
Are there any previously recorded webcasts or seminars on WiX? Any plans to have more?
A: There was an MS internal WiX presentation that Rob gave a while back that has been released to the public. It can be found at: https://blogs.msdn.com/robmen/archive/2004/09/23/233684.aspx. If you (or anyone else) would like to see more of these types of things, all you need to do is ask. Places to ask are the Source Forge lists, Rob's Blog, or the MSI newsgroups (microsoft.public.platformsdk.msi).

RobMen_MS (Expert):
Q:
How is the future direction of WiX set? Any plans to publish a WiX development roadmap?
A: We discuss the roadmap on the wix-users@lists.sourceforge.net list fairly regularly. Posting it officially, is a great idea and I will up the priority on getting it written down and posted publicly. (I'm not hiding it really, I'm just behind. <smile/>)

Andy Q (Moderator):
Q:
How long do these chats go?
A: Normally they are one hour, like this one.

Carolyn_MSFT (Expert):
Q:
The other issue is with the assembly cach. If shadow copying was ever enabled and a strong named assembly gets cached, that cached version will always be used. This is even true in an xcopy scenario when shadow copying is subsequently disabled.
A: This is better addressed by experts from the .NET Framework team. I'd suggest following up in one of the .NET Framework related newsgroups like microsoft.public.dotnet.framework or microsoft.public.dotnet.framework.sdk.

Reid_MS (Expert):
Q:
Where can Orca be obtained?
A: Orca is part of the MSI SDK, which can be obtained as part of the Platform SDK.

RobMen_MS (Expert):
Q:
On SourceForge, the development status of WiX is 'beta'. Broadly speaking, what further work needs to be done before WiX will have its status set to 'production/stable' and what is the likely timeframe for this?
A: "Beta" means that we're still making "breaking changes" without a guarantee of backwards compatibility. My personal goal is to reach stable for the core toolset by the end of January 2005. I also think we need to have better documentation by then... and that may move the date out. However, we haven't had too many breaking changes in the last 6 months, so even now WiX is pretty safe to use (just upgrade once a month, or ever other month).

TylerR_MS (Expert):
Q:
What would really be cools is for Orca to support Wix!
A: Interesting idea, Jimbo. If you have specific ideas on how we can improve the Windows Installer or tools that ship as part of the Windows Installer SDK (such as Orca), please send them to MSIWISH@MICROSOFT.COM

RobMen_MS (Expert):
Q:
When will the examples show in the WiX presentation webcast be available? (I can't read the code from the webcast)
A: I am working on an end-to-end example. My biggest concern is releasing example code that isn't fully baked. That slows me down while I double check all of my work. That and the day-job has kept me uber-busy lately.

Carolyn_MSFT (Expert):
Q:
(ip) What does this mean when installing an app sometimes I get this :This advertised application would not be installed because it might be Unsafe. Contact your administrator to change the installation user interface option of the package to basic.
A: That application used Visual Studio to build the MSI package. Every visual studio generated MSI package includes a set of type 19 custom actions to block certain scenarios. One such scenario is this one. The culprit is the ERRCA_UIANDADVERTISED custom action. The custom action exists in the InstallUISequence table. If the product is advertised, it will prevent execution of the installation in full UI mode. This problem is typically experienced in Group Policy (GP) related software deployment. The Visual Studio generated MSI packages enforce deployment through GP in basic UI. The UI level is a setting available in the MMC snap-in for deploying software. If the product is already advertised, you can invoke the install in basic UI or silently.

Robert_MS (Expert):
Q:
I have been in contact with Junfeng Zhang of the Fusion team. He has now fixed it in the latest build of .NET 2.0. The problem is there is no reliable way to deploy assemblies for .NET 1.0 or 1.1 without changing the assembly version number.
A: Sorry, could you clarify the question?

Andy Q (Moderator):
We are going to have to wrap up this chat in about 10 minutes. We’re going to answer a few more questions, though.

RobMen_MS (Expert):
Q:
Is there a way to add a .NET assembly to be auto-registered as a COM component during installation? Tallow can generate WiX code to generate assembly as COM during installation, but registration info gets hard coded, and codebase cannot be specified.
A: Tallow is the way to do this, then you have to clean up the output. Improving tallow to generate exactly the right ouput would be a great feature. However, no one has stepped up to do so. If you'd like you can open a FeatureRequest on SourceForge and maybe someone will pick it up eventually.

RobMen_MS (Expert):
Q:
Another very useful item to include in the Wix distribution would be a template of a basic Windows Installer UI sequence. This would help beginning Wix users build an .MSI more quickly.
A: Agreed, and I'm hoping the end-to-end example I'm working on (slowly) will fill this need.

ScottK_MS (Expert):
Q:
What is the difference between SqlScript and SqlString? Should one be preferred over the other?
A: SqlScript can be used to execute all SQL that does not need to change as part of the install. To use SqlScript you must put the SQL in a file and reference the file in your WiX authoring.

SqlString supports formatted text as SQL statements and therefore can be used to change the SQL being executed at package install time to include user or machine specific information. To use SqlScripts you must put the SQL directly in your WiX authoring. For more information on formatted text see: https://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/formatted.asp.

For performance reasons, SqlScript should be preferred over SqlString if you have no need to put user or machine specific information in the SQL that is being executed on install.

Reid_MS (Expert):
Q:
Can COM registration in the resulting install for self-registering COM dll's be done without registering them on the system used to build the installs with WiX?
A: The WiX answer to this is tallow, which allows you to capture self-registration information for an assembly as registry keys, which then get installed and uninstalled like any other regkey. This doesn't add any registry keys to the current system.

Robert_MS (Expert):
Q:
Could one create Wix files with a UML tool? (just thinking about it)
A: Hmmm... There are a number of WiX editor projects spun up on SourceForge.NET. I do not know of one that is starting with a UML front end. Perhaps the community of experts on wix-users@lists.sourceforge.net has more data.

Andy Q (Moderator):
We are going to have to wrap up this chat in about 5 minutes. We’re working on the final answers for today.

TylerR_MS (Expert):
Q:
I was wondering if the assembly caching issue and the .NET 1.0 GAC issue could be solved with a custom action. Now .NET 1.x is widely deployed, an installer solution is our only hope.
A: Not sure I understand the question. Can you please clarify? Thanks.

RobMen_MS (Expert):
Q:
But if .NET assembly is registered with the code from Tallow it has to be placed in GAC during installation and code from Tallow is to register for all users. What if I want to install assembly and register it as COM only for one (current) user?
A: This is the "codebase" support right? I'm really not an expert on these parts of the assembly registering and was hoping someone more knowledgeable would contribute to improve tallow.

Carolyn_MSFT (Expert):
Q:
(ip) When trying to reinstall an app in my windows 2003 server I get this message The configuration data for this product is corrupt. Contact your support personnel. I have done everything possible, still can’t install it. Need help
A: Normally first method for troubleshooting would be generating a verbose log file. The log file should hopefully provide some clues as to the problem. If you can't determine the problem yourself, you can also seek help in the microsoft.public.platformsdk.msi newsgroup. If all else fails, the last resort method is the msizap tool that will "zap" the Windows Installer configuration data, thus enabling installation of the product again. Note that this tool is only meant to be used when all else fails. The latest Windows Installer cleanup utility that makes it easier to clean up a product can be found at https://support.microsoft.com/default.aspx?scid=kb;en-us;290301.

ScottK_MS (Expert):
Q:
Are any new custom actions being planned for Wix?
A: COM+ support has been planned for a while and interest has been expressed in MSMQ support. Additionally, the certificate support in the server custom actions is in dire need of cleanup.

Justin_MS (Expert):
Q:
Can I put the wix.xsd in any Visual Studio folder to get Intellisense while editing wix files?
A: The simple answer, yes. See Rob's blog for details: https://blogs.msdn.com/robmen/archive/2004/09/10/228166.aspx. Also, when Votive is released at the beginning of this year, it will have support for IntelliSense.

RobMen_MS (Expert):
Q:
If you can convince MS to make Orca open-source I volunteer to add Wix support!
A: Well, there are already other projects on SourceForge for having a GUI editor on top of the WiX toolset. Also, Justin is just about ready to release the first draft of votive which may be a great place to focus your energy in the near future.

RobMen_MS (Expert):
Q:
Once an assembly has been placed in the shadow copy cache (or GAC in .NET 1.0), there is no way to update that assembly without changing the assembly version. Could this behavior be fixed with a standard custom action in WiX?
A: If you can contribute the code to the WiX project and it solves a real problem, I'd be more than happy to see if I can find the right place for it.

Andy Q (Moderator):
OK that's it! I'd like to thanks all our experts today and our guests for they participation. Come join us again!. Look for upcoming chats at <https://msdn.microsoft.com/chats/>

TylerR_MS (Expert):
Thanks to everyone for attending the chat! There will be no Windows Installer chat in December. The next chat will be on January 11, 2005 at 11:00 AM (Pacific Time) and the topic will be "General Windows Installer Chat". Please keep an eye on the MSDN chat calendar for an announcement. :)

Andy Q (Moderator):
Take care all! bye

Top of pageTop of page