This page collects content from several weblogs that are related to installation topics. You can also find some headlines on the InstallSite homepage, but this page has more articles from more blogs and also displays the article content. If you know of a blog that you think should be added here, please drop me a note.
| Stefan Krueger (InstallSite.org) |
by Stefan Krueger [go to blog]
[ posted 2010-02-18 | go to article ]
Flexera Software released Service Pack 1 for AdminStudio 9.5. It adds much anticipated 64-bit support to the repackager and more:
The service pack will update AdminStudio 9.5 Standard, Professional or Enterprise as well as the Standalone Repackager.
AdminStudio is available in the InstallSite Shop
For a limited time, owners of Wise Package Studio can get a 20% discount when buying AdminStudio with maintenance. For more information please visit the InstallSite Shop.
[ posted 2010-02-17 | go to article ]
Today Flexera Software released a new version of their multi-platform setup authoring tool InstallAnywhere.
While Windows Installer setups had a maintenance mode and rollback capability from the beginning, similar functionality is now also available for cross-platform setups in InstallAnywhere 2010.
Here's a summary of the new features:
In addition, InstallAnywhere 2010 adds support for the latest operating system versions, including Windows 7, Windows Server 2008 R2, SUSE Linux 11.2, Ubuntu 9.10 and Mac OS X 10.6.
InstallAnywhere is available from the InstallSite Shop
[ posted 2010-02-12 | go to article ]
On February 11, 2010, it was announced that computer manufacturer Dell intends to acquire systems management company KACE. From the announcement:
"Dell Inc. and KACE announced on February 11, 2010 that Dell intends to acquire KACE and its award winning KBOX Family of Systems Management Appliances. All KACE employees will join Dell and KACE will operate as a new business unit. "
Who is KACE and why do I blog this?
If you're a system administrator working with Windows Installer you'll probably know AppDeploy.com. While AppDeploy was founded and still is managed and moderated by Bob Kelly, it was acquired by KACE in 2007 and is a service operated by KACE Networks, Inc. In my understanding this means that AppDeploy will now become part of Dell.
And, part of the KBOX product family is Virtual Kontainers, an application virtualization solution that KACE acquired from Computers In Motion in 2008.
[ posted 2010-02-04 | go to article ]
On January 27th, 2010 Caphyon Ltd. announced the latest edition of its Windows Installer authoring tool, Advanced Installer. The new 7.5 release brings three new Installer Themes built on top of Advanced Installer's Enhanced Native UI. Adding to the over 40 existing Classic themes, they take advantage of Windows 7/Vista controls while implementing a smoother, simpler install experience. Also new, the Direct Table Editor extends Custom Tables support, allowing users to visually edit your MSIs at database table and row level.
Summary of improvements in this version:
If you purchased Advanced Installer within the past 6 months (or if you have an active maintenance plan) you will receive the new version free of charge.
Advanced Installer is licensed on a per developer basis and can be installed on multiple machines. It is available in four editions, starting with the Freeware community edition and offering a 30-day trial period for the other editions.
For more information and to purchase Advanced Installer please visit the InstallSite Shop.
[ posted 2010-01-09 | go to article ]
In addition to my blog post in December 2009, here are links to some additional resources about the limited edition of InstallShield that will be included with Visual Studio 2010:
Official announcement from Microsoft on the ClickOnce and Setup & Deployment Projects forum (in the announcements section at the top of the forum).
Read more
S. Somasegar, Senior Vice President, Developer Division at Microsoft, in his blog announced the partnership between Microsoft and Flexera Software to create InstallShield LE for Visual Studio.
Read more
Mike Douglas, IT consultant interested in Team Foundation Server and build automation, has posted a walkthrough of InstallShield LE with many screenshots. He also mentions that this version of InstallShield LE also works with Visual studio 2008.
Read more
Related information:
[ posted 2009-12-09 | go to article ]
As reported before, Visual Studio 2010 (currently in beta) includes an "InstallShield 2010" project template in the "Setup and Deployment" category. Back then the link didn't work, but now it's live. From the "InstallShield Limited Edition for Microsoft Visual Studio 2010" page you can now download a setup package. Registration is required before you can start the download, and my standard Flexera privacy caveat applies: Anyone who knows your e-mail address can retrieve the other information you entered in this form, like your real name, phone number, company name, city and country.
According to the download page: "InstallShield Limited Edition for Visual Studio 2010 replaces the functionality provided by the Visual Studio Installer tool. It provides a subset of the world-class functionality found in our more advanced InstallShield editions.". Note that installing InstallShield LE doesn't remove the Visual Studio Installer (VSI) project type, but it offers an alternative.
Now the interesting question is what subset of the full InstallShield functionality is included in the Limited Edition, and what has been removed? I haven't seen this officially documented, so here are the most notable differences I found so far. (In this screen shot of Solution Explorer you can see the disabled views marked with a lock symbol)
While some more important and some less important functionality has been disabled in the Limited Edition, InstallShield LE still offers some advantages compared to Visual Studio Installer:
Like in the full InstallShield version, the "Update Notifications" view enables you to register your product with FlexNet Connect to send automatic updates to your customers. However this requires a FlexNet Connect account which is sold separately.
InstallShield LE has a wizard to import VSI projects.
To summarize, it looks like InstallShield LE has been tailored to be a replacement for Visual Studio Installer, only adding a limited amount of extra functionality. The big advantage is that you can move to the more powerful InstallShield editions whenever you need the full functionality, without having to start over, and that you are already familiar with the InstallShield user interface. Ideally, the upgrade would simply remove some lock icons from the list of editors in Solution Explorer.
Related information:
| Windows Installer Team (Microsoft) |
[ posted 2009-09-11 | go to article ]
I recently came across several resources that are available from Microsoft to help developers get their applications ready and shining on Windows 7! Since these resources are scattered in several places, I thought it would be beneficial to have a post with a compilation of these. So here you go…
1. Training Kit for Developers (Windows 7 RTM version)
This kit includes presentations, hands-on labs, and demos designed to help you learn how to build applications that are compatible with and shine on Windows 7 by utilizing key Windows 7 features. You can find topics such as: Taskbar, Sensor and Location, Libraries and Shell, DirectX, Multi-touch, Ribbon, etc. The kit is built for both native Win32 C++ developers and .NET developers. The kit also includes Application Compatibility labs for: Version Checking, Data Redirection, UIPI, Installer Detection, Session 0 Isolation, and High DPI, to help you get over the most common application compatibility issues.
Available for download on Microsoft download center.
2. Application Quality Cookbook
This Cookbook provides you with the means to become familiar with how to verify the compatibility of your applications with the new operating system and provides an overview of the few known application incompatibility issues in Windows 7 and Windows Server 2008 R2. But more than that, it also points out differences in performance, reliability, and usability, and provides links to detailed white papers and other developer guidance.
You can download the complete version (available in .docx and .xps formats) of the Application Quality Cookbook from its location on Code Gallery.
The Windows 7 platform makes it easy for developers to create engaging, user-friendly applications by providing familiar tools and rich development features that allow them to take advantage of the latest PC capabilities. This guide summarizes the key developer advances in each of the following three areas:
· Solid Foundation
· Richer Application Experiences
· The Best of Windows and the Web
You can download the Windows 7 version of the Developer Guide (available in .docx and .xps formats) from its location on Code Gallery.
4. Application Compatibility
If you are facing Compatibility problems with your applications on Windows 7, here are some excellent application compatibility resources to get you started!
· Application Compatibility Factory (ACF) Program – Helps customers identify and resolve potential compatibility issues they may face when migrating desktops and applications to Windows 7.
· Windows XP to Windows 7 Migration – Tools and resources available from Microsoft to help you each step along the way when migrating from a Windows XP environment to Windows 7.
· Microsoft Application Compatibility Toolkit 5.5 – contains the necessary tools and documentation to evaluate and mitigate application compatibility issues before deploying Windows 7.
· Win7 App Compat FAQ for developers
· MSDN forum Application Compatibility for Windows Development
5. The Windows 7 Blog for Developers
A blog focusing mainly on the developer aspects of Windows 7.
[Author: Zainab Hakim]
This posting is provided "AS IS" with no warranties, and confers no rights. Use of included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm.
[ posted 2009-09-03 | go to article ]
Starting with Windows 7, Windows Installer enables native support for setting properties on shortcuts created during installation or re-installation. The MsiShortcutProperty table can be used to set any property defined by the IPropertyStore interface.
In order to use the new table, you need to specify the PropertyKey and PropVariantValue for the shortcut you want to set the properties on (you can set multiple properties on a shortcut). The properties allowed are the ones registered in the current property schema. The system-supplied properties are defined in propkey.h: many of them are new in Windows 7. Properties supplied by 3rd parties are also supported, as long as they have been registered with the schema subsystem (for eg. via PSRegisterPropertySchema).
You can use string representations for both – e.g. System.AppUserModel.ID for the PropertyKey PKEY_AppUserModel_ID, and a corresponding string representation for the PropVariantValue. Windows will automatically coerce the value to the correct type.
|
MsiShortcutProperty |
Shortcut_ |
PropertyKey |
PropVariantValue |
|
AppIDProperty |
OrcaNT.406D93CE_00E9_11D2_AD47_00A0C9AF11A6 |
System.AppUserModel.ID |
Microsoft.WindowsInstallerTools.Orca |
|
PreventPinningProperty |
OrcaNT.406D93CE_00E9_11D2_AD47_00A0C9AF11A6 |
System.AppUserModel.PreventPinning |
0 |
Examples:
1. Allow an app to glom onto its shortcut on the taskbar
System.AppUserModel.ID property in Windows 7 defines an AppUserModelID. Applications can use this property to group its windows together with the shortcut on the Windows taskbar. This means that if the application sets an AppUserModelID in its process, and same AppUserModelID in the shortcut, then when the shortcut is pinned to the taskbar and the application is launched from it, the application icon will group together with the shortcut. This property is particularly useful for applications that wish to override the taskbar’s default grouping and unification – apps running under a host process, or an app that owns several different processes. PropertyKey, PropVariantValue that you would author in the MsiShortcutProperty table of your package would be “System.AppUserModel.ID” and “CompanyName.ProductName.SubProduct”, respectively.
2. Prevent pinning of shortcuts
Setting “System.AppUserModel.PreventPinning” property to “1” prevents a shortcut from being pinned to the taskbar.
FAQs
Q: Is there a new standard action that I need to schedule?
A: No, setting of shortcut properties will be a part of the CreateShortcuts standard action.
Q: Can I set properties on shortcuts that are not a part of my installation?
A: No, you can only set properties on shortcuts created by your installation.
Q: What happens if the setting of a property fails?
A: If Windows Installer fails to set a shortcut property, it will return a warning and the installation will continue.
Q: What happens on downlevel platforms?
A: This functionality is only available on Windows Installer 5.0 and above. The MsiShortcutProperty table – if present – is ignored on Windows Installer 4.5 and below.
[Author: Ashish Awasthi]
This posting is provided "AS IS" with no warranties, and confers no rights. Use of included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm.
| Heath Stewart (Microsoft) |
About Windows Installer, the .NET Framework, and Visual Studio. [go to blog]
[ posted 2010-02-26 | go to article ]
A while back I explained how Windows Installer sets the TARGETDIR property to the root of the fixed drive with the most free space available. The problem is that even an attached USB external drive can appear as a fixed drive, and these may be later detached. If components are installed to that drive and the drive is detached, repairing, patching, or even uninstalling the product may fail because the components are not available and cannot be updated or removed. This is also one potential reason Windows Installer may trigger a repair after a failed resiliency check.
The problem is that this can be difficult to test in an automated testing environment. Attaching and detaching USB disks or even adding additional hard disk to a bank of test machines may be prohibitive. Adding disks must also survive a reboot, or you may run into a race condition where the drive isn’t ready before it is expected to be available. Fortunately, Windows 7 and Windows Server 2008 R2 lets us attach virtual disks that are indistinguishable from physical hard disks to Windows Installer.
With Windows 7 or Windows Server 2008 R2 installed you can use diskpart.exe to create, format, and attach a virtual disk. Diskpart.exe can also be run in scripting mode so it can easily be automated. The idea is that you will create a dynamic virtual disk, create a volume in it, format it, then attach it. It’s important that you also assign a drive letter because Windows Installer will only enumerate drives letters.
A script for diskpart.exe may look like the following.
create vdisk file=c:\test.vhd maximum=1048576 type=expandable
select vdisk file=c:\test.vhd
attach vdisk
create partition primary
format fs=ntfs label=test quick
assign letter=v
If you were to put this into a file named, for example, “attach.txt”, you could run it using the following command in an elevated process. On a fairly average machine, this only took about 13 seconds to execute.
diskpart.exe /s attach.txt
You should adjust the maximum property setting (in MiB) to be larger than any other disk. The actual VHD before being formatted will be very small – less than 100 KB. Even when formatted, it’s still only a few MBs large. As long as you do not consume more space than remaining on the host disk or attempt to use differencing disks that parent this dynamic disk, you will not exhaust disk space.
After this step is complete, simply install your product packages and check the attached virtual disk partition (V: in this example) for unexpected directories or files. This is a good indication that files are installing under TARGETDIR without being redirected using either standard Windows Installer directories like ProgramFilesFolder or custom actions to set directories, though it’s best to avoid type 35 custom actions.
This is also evident in a verbose installation log, as you can see below.
MSI (c) (7C:FC) [03:01:02:363]: PROPERTY CHANGE: Adding ROOTDRIVE property. Its value is 'V:\'.
...
Action start 3:01:02: CostFinalize.
...
MSI (c) (7C:FC) [03:01:02:394]: PROPERTY CHANGE: Adding TARGETDIR property. Its value is 'V:\'.
MSI (c) (7C:FC) [03:01:02:394]: PROPERTY CHANGE: Adding PFiles property. Its value is 'V:\Program Files\'.
MSI (c) (7C:FC) [03:01:02:394]: PROPERTY CHANGE: Adding ManufacturerDir property. Its value is 'V:\Program Files\Heath Stewart\'.
MSI (c) (7C:FC) [03:01:02:394]: PROPERTY CHANGE: Adding InstallDir property. Its value is 'V:\Program Files\Heath Stewart\Bad Product\'.
MSI (c) (7C:FC) [03:01:02:394]: PROPERTY CHANGE: Adding ManufacturerFolder property. Its value is 'C:\Program Files (x86)\Heath Stewart\'.
MSI (c) (7C:FC) [03:01:02:394]: PROPERTY CHANGE: Adding INSTALLDIR property. Its value is 'C:\Program Files (x86)\Heath Stewart\Bad Product\'.
...
Action ended 3:01:02: CostFinalize. Return value 1.
If you find that errant files exist on the larger virtual disk, check the installation source for common problems like creating a directory named “Program Files” with a non-standard identifier like “PFiles”. If no custom actions otherwise set this directory, also check that it is a secure public property and set by default in the package. Even if you expect to pass in the directory, you should always author a default directory just in case. Users may attempt to install your package directly, or advertised installs may not be passed this directory property if triggered automatically for features and components being installed.
Attached is sample authoring and a package used to generate the log above, along with the full installation log. The package contains an example of a component that installs under ProgramFilesFolder, as well as a directory mistakenly authored as “Program Files” without actually targeting the real Program Files folder (which may not even be named “Program Files”).
Before recycling the machine, be sure to detach the virtual disk which can also be scripted through diskpart.exe containing the following example commands.
select vdisk file=c:\test.vhd
detach vdisk
[ posted 2010-02-15 | go to article ]
When testing the serviceability of your product before you ship, it’s important to test any conditions you might have on the product, features, components, and actions.
Feature conditions can set the install level of a feature when the package is installed. But as the Condition table documentation states, be sure that the condition does not evaluate to False at any time after the feature is installed. Once the feature is installed, the condition is used merely to inform Windows Installer whether it is installed or not. If Windows Installer does not think the feature is installed locally, is will not reinstall it or remove it during uninstall. This is also the problem when removing components from features, which leaves the feature state appearing as Advertised and is never reinstalled, patched, or removed again.
Component conditions are only evaluated when the component is first installed unless the component is marked as transitive. Unlike features, component conditions actually determine whether the component is installed or not whenever they are evaluated. So if the condition evaluates to Null or True the component is installed; otherwise, the component is removed. Transitive components are useful when the installed resources depend on the machine state which can change. Examples of changes are upgrading the operating system or installing some other feature or product. Transitive components can provide light-up features in response to such changes.
Conditions on both standard and custom actions determine whether the actions are executed.
Mistake: If reinstallation (repairs) causes problems for applications, setup developers may condition the product or actions as: NOT REINSTALL.
The problem with denying reinstall is that patching is simply the act of applying transforms and reinstalling the product. If a patch updates existing features, those features are passed to the REINSTALL property. Rather than denying reinstall, it’s best to fix whatever problems prevent reinstall. Commonly, this might be because a custom action does something wrong. For example, if a custom action adds an element to an XML file every time it is run and only one element can exist, make sure the custom action always checks whether the element exists. Custom actions should be data driven and robust, just like standard actions. Never assume the machine state exactly matches the state Windows Installer assumes. In most cases, Windows Installer only considers the state for the current product – not any other products installed – nor is aware of any user modifications.
Mistake: To make sure that actions are not executed when the product is removed, setup developers may condition actions as: NOT REMOVE.
If a product has multiple features, features can be removed by passing them to the REMOVE property. When the product is uninstalled, REMOVE is set to “ALL”. Even if the full list of features is installed, Windows Installer sets REMOVE to “ALL” after the InstallValidate action. So if you do not want to run custom actions during product uninstall, use the condition: NOT REMOVE = “ALL”.
Mistake: To make sure components are only installed when certain properties are passed to the command line, setup developers may condition components when these properties are defined.
If the components are transitive, these properties must be patched every time. When they are not defined, the components are uninstalled. Even if the components are not transitive, if ever the parent features are uninstalled those components are uninstalled. When the feature is installed again, those properties must be specified or those components are not installed again. Those conditions are evaluated whenever the components are first installed.
If you have shipped bad custom actions, you can often fix them in a patch. But be aware that even if you ship the fixed condition in every patch, when you uninstall the last patch the bad condition is used again. This is because patch uninstall is exactly the reverse of patch install: previously applied transforms are unapplied from the product, and the product is reinstalled. So because the transforms are missing, the fixed custom action is not used.
With WiX v3 patching using pyro.exe, you can change the condition but cannot refer to it directly in a PatchFamily. Instead, you need to refer to an element – such as a Component element using a ComponentRef – in the same fragment as the condition. The problem is, however, most times setup developers author conditions in the entry section – the main section that also contains the Product/@Version which becomes the ProductVersion property. So if you intend to ship a small update but increment the ProductVersion as part of the builds, you may end up shipping a minor upgrade which creates a new baseline; i.e., previous small updates may not apply, or fixes are effective removed if the minor upgrade patch is not cumulative.
You can add the Condition element in a fragment that is referenced in the upgrade product, but unless the old condition is also moved to the same section you’ll end up with both conditions when the patch is applied. This is because the Condition column itself in a LaunchCondition is the primary key. If you change the condition, you change the key and that’s what transforms use to determine whether a row is added, updated, or removed. Fortunately, WiX v3 patching lets you move elements to different fragments. You can move the Condition element for a product to a section being updated in a patch already, but you will have to rebuild both the target and upgrade packages. This also means you should have saved a complete layout of your target (baseline) product. You want it to build exactly as it shipped as a installer package or the patch may not apply or apply the wrong changes.
All this can typically be avoided if you test the serviceability of your product prior to shipping.
[ posted 2010-02-14 | go to article ]
It’s always important to test your product before it ships. Servicing it later can prove very costly and very difficult. It’s no different with your installation packages. You need to test not only basic install and uninstall operations, but also test your servicing plan. Problems are inevitable in practically any application, and you may even need to add in additional features. So test that you can before your product ships.
Before testing your product deployment, you need to define and document what you will conceivably support. Many of the following options supported by Windows Installer are also supported by other deployment technologies.
When you have documented how you will service your product, be sure to test all combinations. For example, if you will use small update patches for hotfixes but minor upgrade patches for service packs, test installing patches on both the initial release (RTM) and a service pack. You should also test more than one service pack to make sure all update scenarios are covered.
Besides testing different scenarios, also test your different resources types. Whether you have versioned files (ex: EXE, DLL), unversioned files (ex: TXT, XML), registry values, services, COM servers, any custom resource types, or a mixture of different resources types, test them all. Different types of resources upgrade differently or are adversely affected by multiple products having install the same set of resources (shared components).
Once you have documented and tested a particular servicing plan, try to stick to it. Changing tactics later may not work and can cause issues.
[ posted 2010-02-11 | go to article ]
After the Visual Studio 2010 Release Candidate (RC) is installed, there is a button to install the documentation locally. If you have overlooked this option or chose not to install documentation locally and wish to do so later, you can follow these instructions.
You can now browse selected documentation offline. Additional documentation is available online through the viewer or MSDN.
[ posted 2010-02-11 | go to article ]
If you have downloaded the Visual Studio 2010 Release Candidate (RC) from MSDN or the Download Center as an ISO and are having problems installing it, it could be that either the ISO wasn’t downloaded correctly or that it wasn’t burnt to DVD correctly.
On the installation error dialog, you will find a link to the installation log. You may find text like in the following example,
[02/09/10,21:50:27] VC 9.0 Runtime (x86): [2] CMsiComponent::Install() expects the setup file for VC 9.0 Runtime (x86), but the file failed verification.
[02/09/10,21:50:28] setup.exe: [2] ISetupComponent::Pre/Post/Install() failed in ISetupManager::InternalInstallManager() with HRESULT -2147467259.
[02/09/10,21:50:30] VS70pgui: [2] DepCheck indicates VC 9.0 Runtime (x86) is not installed.
[02/09/10,21:50:30] VS70pgui: [2] DepCheck indicates VC 10.0 Runtime (x86) was not attempted to be installed.
The error -2147467259 (0x80004005) is a generic error that occurs when installation fails. The first log line may indicate that a package could not be verified because the file was missing, or the file was corrupt and digital signature or checksum verification failed.
You can attempt to re-download the ISO file or burn it to DVD again.
After you download the ISO, please visit KB841290 to download and install the File Checksum Integrity Verifier utility (fciv.exe). Run the following command on the ISO and compare to the SHA1 hash documented on the MSDN subscribers download site for VS2010 RC.
fciv.exe –sha1 VS2010Ult_RC.iso
The MSDN subscribers download site is accessible to the public, but requires a subscription to download the files. The SHA-1 hashes are also included on the Download Center pages for releases like Visual Studio 2010 Ultimate. Whether you download the self-extracting RAR files or the ISO directly, the checksum should match exactly.
Even if the ISO is downloaded correctly, burning it to DVD may not complete correctly. If your burning software offers any verification step, please make sure to enable it. This will require additional time to burn the ISO, but could save you the trouble and expense of burning another DVD.
Mounting the ISO also requires that the ISO was downloaded completely and correctly, but it’s important to note that mounting an ISO requires that the software mounts it before you login; otherwise, a race condition occurs. Most software will mount an ISO when a startup program begins, but if Visual Studio attempts to restart after a reboot first the ISO will not be mounted and the installation will fail. If this happens, you can always attempt to manually restart the VS2010 installation.
| Rob Mensching (Microsoft) |
[ posted 2010-02-27 | go to article ]
Today, Jenny and I start the first leg of our flight to New Zealand. On March 1st we will arrive there without February 28th existing. The international date line is so cool.
We'll be in New Zealand for two weeks. During that time I'll have no electronic wizardry of any note with me (Jenny carries the camera). Thus I'll be basically incommunicado.
Have a great couple weeks and keep coding, I'll catch up when I get back!
[ posted 2010-02-26 | go to article ]
The video tonight comes from Heath Stewart. At pretty much every WiX Working Group meeting, Heath reminds me to show the video and then Mike Carlson (who I consider as owner of the standard custom actions) reminds me he's just there for the video. I wonder what they are going to do when I'm gone for the next two weeks?
Anyway, Heath found this video on Singularity Hub and it's pretty dang cool.
And for the record, humans can do it faster. For now.
[ posted 2010-02-21 | go to article ]
Today I turned 0x21. For the non-geeks out there, that's thirty three. The way 21 feels like a coming of age for many people (hey, I can drink now!), 33 feels like a huge step for me. If you follow me here, you know I talked about the end of the beginning quite a bit last year. Now I feel I'm absolutely at the beginning of the middle of life. Now I also feel I can reveal the surprise I mentioned on Hanselminutes last month.
At this point in time, my life is defined by two things: my wife and my work. My wife represents the center of my family. I recognized this a few years ago when our anniversary became a personal holiday for me. I don't talk about this facet of my life here much because it is personal and private.
On the other hand, I use my work to express myself publicly. I want to create things that people find useful. I want to go out and explain how those things are created. I want to include others in the creation of things that are useful. And the things I create are written in software.
I also want my work to be a reflection of me. I've heard psychologists and sociologists say a man's identity is often defined by his work. That is certainly true of me.
In general, I'm probably best known as a "setup geek". In Microsoft, sometimes I'm an "open source guy". But everywhere I'm the "WiX toolset benevolent dictator". Those are the things that identify me and I'm pretty comfortable about that.
But that identity represented only the work I did in my free time. There was a huge body of work that I did during the day that was important but over the years began to represent less of what I was about. After ten years the cognitive dissonance reached a point where I decided it was time to do something about it.
Last year my good friend Robert Flaming said to me, "You talk about setup and suggest how it should be better but hide behind the fact that getting the work done is just your night job." That stung a bit but mostly because it was true.
I took a week off at the end of August to think about whether I was going to do setup or not.
In September, I made the very big decision to join the Deployment Technology Group in Microsoft's Developer Division. The Developer Division, or DevDiv, in Microsoft is primarily responsible for all things Visual Studio and .NET Framework. Historically when I've referred to "Visual Studio" it would have been more accurate to say "DevDiv".
The Deployment Technology Group, or DTG, is the team responsible for the setup of Visual Studio and .NET Framework. They also maintain the Setup and Deployment project in Visual Studio 2010. DTG is also the primary contributor to the WiX toolset. Historically, when I've referred to the "Visual Studio team contributing to the WiX toolset" it would have been more accurate to say "DTG".
Which brings me to the "surprise" I mentioned on Hanselminutes. When Scott Hanselman asked me if the WiX toolset was ever my day job, I kind of dodged the question and answered it like I wasn't on the DTG team yet. At that moment, I was not mentally prepared to merge my night job identity with my day job identity and the questions I imagined people would start asking. So, I added the lame comment that essentially translated into, "Ask me again in a month. I'll have it sorted out then."
My Product Unit Manager (my boss's boss) and I had a similar conversation a month earlier when he asked why I hadn't announced my move to DTG publicly. He was actually a bit miffed and asked if I lacked confidence in the team or something. That couldn't be farther from the truth. I actually think DTG is going to be one of the best teams I've ever worked on in Microsoft. The reality is that it took time for me to understand my new role and what it means to me.
So what is my new role? Well, my Group Program Manager introduces me as "our Architect". That makes me smile but I'm not a high enough level to actually be an Architect at Microsoft yet so I like to say I'm an "Architect In Training". As a senior developer on DTG, I'm obviously focused on the technical aspects of setup in general and tools for setup in specific. Thus far I've spent almost all of my time in planning for the next version of Visual Studio. I've had basically zero impact on Visual Studio 2010. Everything else is yet to be defined.
So what is next? Well, WiX v3.5 is very important to me. The WiX toolset is still mostly a night job for me but I do spend quite a bit of time talking to people on my team about the work they do in the WiX toolset and how best to accomplish it. Remember, at this point in time, Votive is fully developed by a developer on the DTG team, Tony, and Burn's new foundation came from the set of developers in DTG responsible for .NET Framework installation.
After WiX v3.5 will be the next version of Visual Studio and WiX v4.0. As you can see the lines between my day job and night job are very blurry but for now it's working.
In fact, every week for the last four months I've thought, "DTG was a great move for me." I now spend all of my time thinking about how to improve setup. Right now that constant attention is helping me recognize the depth of work needed to truly build a coherent story for setup development on the Windows platforms. From there I start to think about how to address the problems. Sometimes a solution can be built immediately into the WiX toolset and sometimes a solution is something we plan for later. The ability to tackle short term and long term problems is incredibly invigorating.
Ultimately, I write less code but (hopefully) have a greater and wider impact. Over a fantastic birthday dinner, I told Jenny that the last 33 years felt like I was building a foundation. Now, with her, we go build something cool.
| Aaron Stebner (Microsoft) |
Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio [go to blog]
[ posted 2010-03-09 | go to article ]
There was some information announced today at GDC 2010 about the upcoming XNA Game Studio 4.0 release and support it will provide for developing games for Windows Phone 7 Series, Xbox 360 and Windows. I encourage you to check out some of the links below to start learning about this new version of XNA Game Studio:
[ posted 2010-03-04 | go to article ]
My colleague, Stephen Styrchak, has created a Visual Studio 2008 add-in that allows you to debug an XNA Game Studio content pipeline extension from within Visual Studio 2008 as you are developing it. Since it is a Visual Studio add-in, you can only install it in Visual Studio 2008 Professional Edition or higher – it will not work if you are using XNA Game Studio 3.1 in Visual C# 2008 Express Edition.
Here are links with some additional information about Stephen’s add-in:
If you are developing a content pipeline extension for your XNA Game Studio 3.1 game, I encourage you to check out Stephen’s blog and his add-in so you can debug your content pipeline extension from Visual Studio 2008.
[ posted 2010-02-21 | go to article ]
Rob Mensching posted an announcement on his blog this week about the availability of a build of WiX v3.5 that supports the recently released Visual Studio 2010 release candidate.
You can download WiX v3.5 build 3.5.1419.0 or higher and start using it with the VS 2010 release candidate.
There are a couple of notes to keep in mind as well:
[ posted 2010-02-09 | go to article ]
As announced earlier today on Soma’s blog and Jason Zander’s blog, the Visual Studio 2010 and .NET Framework 4 release candidate builds are available for download (today if you are an MSDN subscriber and this Wednesday, February 10, 2010 for the general public). Here are links where you can find additional information and provide feedback to the product teams:
| Christopher Painter |
$errorCode = 7
xml_error_string() = mismatched tag
xml_get_current_line_number() = 11
xml_get_current_column_number() = 2
xml_get_current_byte_index() = 806
| Vijay Raj |
msigeek is a technology blog on Windows Installer, Windows 7 Tips, Application Compatiblity, Deployment guidelines, How To, Tutorials, Webcasts, Ebooks, IT News and Reviews. [go to blog]
[ posted 2010-03-13 | go to article ]
[ posted 2010-03-12 | go to article ]
[ posted 2010-03-12 | go to article ]
Check out this below tip, which explains you on, how you can export and import contacts from multiple email accounts.
[ posted 2010-03-12 | go to article ]
| InstallShield Knowledge Base Articles (Flexera Software) |
Flexera Software KB Articles - InstallShield [blog home]
|
|
News | Discussions | Windows Installer | Virtualization | Related Tools | More Help | InstallScript | About InstallSite | Shop | Site Search |
|
|
Neuigkeiten | Diskussionsgruppen | Windows Installer | MSI FAQ | Artikel | Shop | Suche |
Copyright © 1997-2010 by InstallSite Stefan
Krueger. All rights reserved. Legal
information.
Impressum,Datenschutzerklärung,
Haftungsausschluss
By using this site you agree to the license
agreement. Webmaster contact