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-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:
[ posted 2009-12-01 | go to article ]
On November 23rd, 2009, Caphyon Ltd. released version 7.3.1 of their Windows Installer authoring tool Advanced Installer (the original 7.3 release was on November 9th).
New and improved features in Advanced Installer 7.3 include:
With seven feature releases within a 12 month period, Caphyon is one of the most agile manufacturers in the MSI authoring tools market. Each purchase of Advanced Installer includes 6 months of maintenance (optionally 30 months) so you typically get three or four upgrades for free.
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 2009-11-25 | go to article ]
Flexera Software has released the new version of AdminStudio, as announced at Tech-Ed Europe. AdminStudio 9.5 includes improved support for the RTM version of Windows 7 and MSI 5, several updates to the Repackager (but no 64 bit support yet), and the latest version of InstallShield 2010 Service Pack 1 as editor. The AdminStudio editions with Virtualization Pack also has improved support for the new versions of Microsoft App-V and VMware ThinApp.
AdminStudio is available from the InstallSite Shop.
[ posted 2009-11-10 | go to article ]
Today at the Microsoft TechEd Europe conference in Berlin, Flexera Software announced a new version of their packaging and virtualization tool. AdminStudio 9.5 is scheduled to be released on November 23, 2009.
The AdminStudio Repackager has been improved to support Windows 7 requirements, including enhanced exclusion lists. AdminStudio 9.5 also includes InstallShield 2010 to edit MSI files.
AdminStudio 9.5 will also support the latest releases of the leading application virtualization products: Microsoft App-V 4.6 and VMware ThinApp 4.0.3.
Unfortunately, AdminStudio 9.5 will not include support for repackaging 64 bit applications, but Flexera Software told me that this is high on their priority list. If you’re interested in beta-testing this functionality, please contact me (skrueger -at- installsite -dot- org) and I will forward you e-mail to Flexera Software.
You can buy AdminStudio in the InstallSite Shop.
| 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 2009-12-21 | go to article ]
Components are the basic unit of installation in a Windows Installer product. They are installed by one or more features, and can contain any number of resources including files, assemblies, registry values, and are recommended for custom resources as well. Examples of custom resources are web sites, virtual directories, SQL tables, and stored procedures.
Components are identified in a product package using a unique ID, but the GUID is used to identify the component across all products on the machine. The unique ID is only scoped to the product. It is a primary key used in many foreign key relationships like in the FeatureComponents table, File table, Registry table, and more.
The same component GUID can be registered by multiple products. This provides for multiple products to install shared resources. However, it is a common misconception that only by defining the same GUID is a shared component defined. Both the GUID and the component key path must be the same. So if one product installs component {26D1EE50-A838-4837-9A02-6801BA2C4867} to C:\Program Files\A and another product installs a component with the same GUID to C:\Program Files\B, these components are not fully shared components.
Windows Installer registers a component GUID along with its key path and the ProductCode of the product that installed it to that location. This is why functions like MsiGetComponentPath require a ProductCode - to get the path or state of a component installed by a particular product. Without the ProductCode, Windows Installer cannot determine to which component you refer even when the GUID is the same. Windows Installer does define the MsiLocateComponent function to find a component without a ProductCode but even documents, "This function attempts to determine the product using MsiGetProductCode, but is not guaranteed to find the correct product for the caller."
You can see an example of this in the attached solution. Products A and B install both file and registry resources using shared components, unique components, and even violate component rules as an example. Specifically, components with the same GUID should always have the same composition; and conversely, components that install the same set of resources should have the same GUID.
Product A installs and registers the following shared components.
MSI (s) (F4:4C) [21:47:03:594]: Executing op: ComponentRegister(ComponentId={91507EB3-88C9-45D8-8C48-E52876E4F408},KeyPath=C:\Users\heaths\AppData\Roaming\Heath Stewart\Product.wxs,State=3,,Disk=1,SharedDllRefCount=0,BinaryType=0)
MSI (s) (F4:4C) [21:47:03:938]: Executing op: ComponentRegister(ComponentId={A1E54C6D-BDA5-45EB-97BD-818763987E5E},KeyPath=01:\SOFTWARE\Heath Stewart\SharedRegSameGuid,State=3,,Disk=1,SharedDllRefCount=0,BinaryType=0)
MSI (s) (F4:4C) [21:47:04:078]: Executing op: ComponentRegister(ComponentId={26D1EE50-A838-4837-9A02-6801BA2C4867},KeyPath=C:\Users\heaths\AppData\Roaming\Heath Stewart\A\Product.wxs,State=3,,Disk=1,SharedDllRefCount=0,BinaryType=0)
Product B - installed after product A - installs the registers the following shared components.
MSI (s) (F4:18) [21:47:27:031]: Executing op: ComponentRegister(ComponentId={91507EB3-88C9-45D8-8C48-E52876E4F408},KeyPath=C:\Users\heaths\AppData\Roaming\Heath Stewart\Product.wxs,State=3,,Disk=1,SharedDllRefCount=0,BinaryType=0)
MSI (s) (F4:18) [21:47:27:093]: Executing op: ComponentRegister(ComponentId={A1E54C6D-BDA5-45EB-97BD-818763987E5E},KeyPath=01:\SOFTWARE\Heath Stewart\SharedRegSameGuid,State=3,,Disk=1,SharedDllRefCount=0,BinaryType=0)
MSI (s) (F4:18) [21:47:27:155]: Executing op: ComponentRegister(ComponentId={26D1EE50-A838-4837-9A02-6801BA2C4867},KeyPath=C:\Users\heaths\AppData\Roaming\Heath Stewart\B\Product.wxs,State=3,,Disk=1,SharedDllRefCount=0,BinaryType=0)
Note that SharedDllRefCount above refers to a legacy reference counting mechanism using only an integer in the registry along with a file path. This provides no identification of what products installed those files, requires that each product correctly increment and decrement the counter, and provides no synchronization between threads. This is not the same as Windows Installer component reference counting.
When product A is uninstalled, you will see in a verbose log that Windows Installer will not uninstall shared components. It will remove files installed to different locations for the same GUID, however.
MSI (s) (F4:A0) [21:47:39:732]: Allowing uninstallation of shared component: {26D1EE50-A838-4837-9A02-6801BA2C4867}. Other clients exist, but installed to a different location
MSI (s) (F4:A0) [21:47:39:763]: Disallowing uninstallation of component: {A1E54C6D-BDA5-45EB-97BD-818763987E5E} since another client exists
MSI (s) (F4:A0) [21:47:39:794]: Disallowing uninstallation of component: {91507EB3-88C9-45D8-8C48-E52876E4F408} since another client exists
...
MSI (s) (F4:A0) [21:47:39:997]: Feature: ProductFeature; Installed: Local; Request: Absent; Action: Absent
MSI (s) (F4:A0) [21:47:40:013]: Component: SharedFileSameGuid; Installed: Local; Request: Absent; Action: Null; Client State: Local
MSI (s) (F4:A0) [21:47:40:059]: Component: SharedRegSameGuid; Installed: Local; Request: Absent; Action: Null; Client State: Local
MSI (s) (F4:A0) [21:47:40:122]: Component: UniqueFileSameGuid; Installed: Local; Request: Absent; Action: FileAbsent; Client State: Local
When product B is uninstalled, those shared components are removed because no remaining clients (products) are installed. The problem is that products A and B also installed the same resource with a different GUID, which is not correctly reference counted and uninstalled when product A is first uninstalled.
MSI (s) (F4:A0) [21:47:40:044]: Component: SharedFileDiffGuid; Installed: Local; Request: Absent; Action: Absent; Client State: Local
MSI (s) (F4:A0) [21:47:40:106]: Component: SharedRegDiffGuid; Installed: Local; Request: Absent; Action: Absent; Client State: Local
There are a lot of implications with shared components and design considerations that will be covered in future posts.
[ posted 2009-11-06 | go to article ]
Installation bootstrap applications are increasingly common as products chain dependencies like the Microsoft .NET Framework. Because 64-bit Windows supports both 32- and 64-bit execution, but 64-bit executables on 32-bit Windows give what some users might consider cryptic error messages, installation developers often ship a 32-bit bootstrap application that runs in either environment. Then in scenarios when a required package installs only in 64-bit Windows, the bootstrap application can present a friendly actionable error message.
Microsoft Windows supports 32-bit execution on 64-bit Windows with Windows-on-Windows 64-bit (WoW64). But what if WoW64 wasn’t available?
To support deployment to more constrained systems and to install with a smaller footprint to secure and maintain, Windows Server 2008 R2 Server Core offers WoW64 as an optional feature.
What does this mean for installation developers? Overall, 32-bit executables will not execute since the WoW64 subsystem is not installed. More specifically,
However,
But this is really no cause for alarm. This only applies to Windows Server 2008 R2 Server Core designed to provide one or a few roles or features in an enterprise. They aren’t designed to run client applications. Administrators aren’t likely to install many applications on Server Core. And in Windows Server 2008 R2 Server Core WoW64 is enabled by default based on customer feedback from beta 2.
If you need to support server core and have 32-bit components to install, consider separate packages for 32- and 64-bit instead of a 64-bit package that contains 32-bit components and custom actions. This will allow for flexibility in supporting 32-bit only, 32- and 64-bit mixed, and 64-bit only installation. More work may be required to support processor-independent data files and other resources.
But remember this is only if you need to support Server Core. Most installation developers should have no cause for worry regarding the absence of WoW64.
[ posted 2009-10-20 | go to article ]
As announced on Soma’s blog this morning, Microsoft Visual Studio 2010 Beta 2 and the .NET Framework 4 Beta 2 have been released to MSDN Subscribers and will be available for everyone on Wednesday.
Visual Studio 2010 boasts a great new user interface with better contrast and lots of UI elements that tend to add confusion to the development process. It’s pretty amazing how getting rid of a few lines increases usability.
For developers redistributing the .NET Framework, perhaps the best news is how much smaller and faster runtime deployment is. Peter Marcu also describes robustness features added to .NET Framework 4 setup such as attempting to fix common problems and retrying installation automatically.
Check them out and give us your feedback on issues you find. We also have dedicated forums for more social interactions with both Microsoft employees and other community members.
[ posted 2009-10-14 | go to article ]
Testing software can be fun and rewarding. You get to see new, upcoming features and provide valuable feedback to the developer. But as with most pre-release software, we recommend that you don’t install it on production machines. You could dedicate extra machines for testing, or even test in a virtual machine. Virtual machines are great for testing operating systems and applications, and maximizing system resource usage. You can even take snapshots of the system disk and memory states and roll back to previous states.
Besides requiring additional memory and processor time, another problem with virtual machines is that they run under a standard configuration of a basic display driver and no sound driver in Hyper-V. All your other devices attached to your machine are not always accessible, including your graphics card that provides a nice Aero glass experience in Windows Vista and Windows 7.
But by installing Windows to a virtual hard disk (VHD) – the same format used by virtual machines – and creating a differencing disk on top of that you can test multiple configurations on the same base platform. You can choose with physical or virtual hard disk to boot and also take advantage of all the system devices your machine has to offer.
If you already have installed Windows Vista or Windows 7 and have plenty of free space on your system partition or in another partition – almost twice the amount of the virtual partitions you want to create – you may proceed to step 2. This step is useful if you want to install only to VHD files on your machine.
You’ll need to create a partition to store the boot configuration data (BCD) as well as the virtual hard disk (VHD) files. These can exist in the same partition, but Windows will typically create separate partitions as you see in the screenshot below. This also allow you to encrypt the system partition with BitLocker drive encryption (BDE) while maintaining a boot-readable partition.
You’ll create a base virtual hard disk (VHD) in a partition with enough space available to hold the base installation and the differencing disk. This should be roughly twice the amount of space you pass to the “maximum” argument in the steps below. The number you pass to the “maximum” argument is in MB. A typical Windows 7 (x86) installation with a half-dozen or so driver updates and Microsoft ForeFront took a little over 6GB before being compressed.
You’ll create an expandable VHD as the base since it won’t be modified when booting to a differencing VHD. The installation will take a little longer since the VHD will be expanded as necessary, but this will result in a small base VHD instead of wasting unused space for a fixed VHD.
For the following steps, if you’re already logged into Windows Vista or Windows 7 you’ll need to open an elevated command prompt. If you’ve completed step 1, you continue in the command prompt you already opened.
diskpart
create vdisk file=C:\Win7-base.vhd maximum=65536 type=expandable
select vdisk file=C:\Win7-base.vhd
attach vdisk
exit
After the installation has finished and you have logged in, you may want to update or install additional drivers for your hardware. You might also consider installing a minimal amount of software like a virus scanner. This will yield a smaller differencing disk.
For example, with virus software there are program files that need to be installed. Incremental updates may be provided for virus definitions. By installing the virus software first before creating the differencing disk, only definition updates will be contained within the differencing disk.
If you have installed the same Windows version that was already installed on another partition (if any) you may also have duplicate boot entry descriptions. You can rename the VHD boot entry to be unique.
bcdedit /v
bcdedit /set {guid} description “Windows 7 (VHD)”
Finally, you may wish to run Windows Update one last time before attempting to reduce the VHD file size. Be sure to reboot so that any changes made to disk after the reboot are contained within the base VHD.
If you wish to reduce the amount of physical disk space consumed by the base VHD, you can attempt to reduce space within the VHD and then compress it from another Windows installation. It’s interesting to note that if you are viewing the VHD file on a separate partition while booted into the VHD file, the file size will appear to be the maximum size of the VHD. If you created an expandable disk as described in these instructions that is not accurate. You will see the correct file size when booted into a different partition.
You might also wish to relocate the paging file to the physical hard disk to reduce space consumed in the base VHD and reduce changes in the differencing VHD.
If you have formatted the VHD as NTFS (default for Windows Vista and Windows 7) you do not need to run the Virtual Disk Precompactor that ships with Virtual Server and Virtual PC. This may help for FAT-formatted partitions, though.
After you have defragmented, reboot into a different partition. You may boot into Windows and open an elevated command prompt, or start Windows installation and open a command prompt as described in step 1. Type the following commands.
diskpart
select vdisk file=C:\Win7-base.vhd
compact vdisk
This may take some time to complete, but you should notice a decrease in file size of C:\Win7-base.vhd.
Next you’ll create a differencing VHD that will store all the differences between what you write to the disk and the base VHD. When you install software, it’s all contained within the differencing VHD and the base VHD is not modified. You can even create multiple differencing VHDs and boot to each of them separately, or create a chain of differencing VHDs.
In the following example you’ll create a differencing VHD for installing Visual Studio 2010 Beta 2, but you could use any file name and path or install any software you like instead.
You cannot be booted into the base VHD when creating the differencing VHD. If you have rebooted into another partition with Windows Vista or Windows 7, or into a Windows installation, do so now. Open an elevated command prompt as described in previous steps.
diskpart
create vdisk file=C:\Dev10-Beta2.vhd parent=C:\Win7-base.vhd
exit
bcdedit /v
bcdedit /copy {guid} /d “Dev10”
bcdedit /set {guid} device vhd=[locate]\Dev10-Beta2.vhd
bcdedit /set {guid} osdevice vhd=[locate]\Dev10-Beta2.vhd
bcdedit /default {guid}
After you have rebooted the machine into the new differencing VHD you can begin installing software. In this example you’ll install Visual Studio 2010. Download and run the web installer or insert your installation media and run setup.exe.
Follow the installation wizard choosing either the default installation or a custom installation. After the install is completed explore the new features of Visual Studio 2010 and enjoy.
Virtual hard disks are an integral part of virtual machines, but if you want to test on real hardware booting to a VHD is a good alternative. Microsoft TechNet has a lot of details about preparing, deploying, and booting to VHDs; and the Microsoft Virtualization team blog has more great information.
[ posted 2009-08-10 | go to article ]
A security update for ATL, KB971092, is currently offered for Visual Studio 2008 Service Pack 1 customers who have Visual C++ installed. If Microsoft Update is continuously offering this patch to you, you may need to clear up some disk space. The patch is 365MB and contains headers, libraries, and executables for most of Visual C++ including ATL and the CRT. This patch, however, may require up to 3.7GB to install with a possible residual footprint of about 1.7GB if you have all Visual C++ features installed.
If you are continuously being offered ATL security update KB971092, most likely you need to free up some additional space. You’ll need about 3.7GB to install this patch. If you’ve already downloaded it from the Download Center, you’ll need about 3.4GB.
Alternatively, if you do not use Visual C++ you can also re-run setup and choose to uninstall the Visual C++ feature and all its children. The patch should no longer be offered to you after that.
To free additional space, first run the Disk Cleanup utility as an administrator. If you are prompted to clean up for the current users or everyone, choose everyone. On Windows 7, after the main user interface is displayed click on the Clean up system files button. Because this is a security update, it is recommended you check all options and click OK to delete those files.
You may also delete the Windows Installer baseline cache. These files are useful to help eliminate prompts for source when uninstalling patches, and even sometimes when installing certain types of patches. By deleting these files, if you are prompted for source you may need to insert your original installation media, or download and extract previously downloaded installations.
To delete these files, open an elevated command prompt and type the following command.
rmdir /q /s %WINDIR%\Installer\$PatchCache$
DO NOT delete %WINDIR%\Installer no matter how large it might be. The cached files in this directory are needed to repair, patch, and even uninstall Windows Installer products. Rebuilding the cache is very difficult and time consuming, and you may have to reinstall Windows. If you want to reduce space consumed in this directory, you may uninstall any products you do not use.
Windows Installer may require a lot of space. It is a transactional installation engine, so it must make copies of the older files that will be replaced. To maintain security during installation, a copy of the patch itself is made after verifying security and possibly prompting for consent (UAC). To support uninstalling the patch without prompting for source, copies of the older files being replaced are also stored in the baseline cache mentioned above, %WINDIR%\Installer\$PatchCache$.
If you do not want the patch cache to be created for this or any other products when patched, you can set the MaxPatchCacheSize system policy to 0. You must stop the Windows Installer service for the change to take affect. Future Windows Installer installations will automatically start the service so merely stopping it is sufficient. It will automatically stop after 10 minutes of inactivity as well.
After the patch is installed, a copy of the patch is kept for future installation operations – to support patch uninstall, for example – and cannot be deleted until all applicable products are uninstalled.
If you did not already disable the baseline cache, copies of files replaced under %ProgramFiles% (default) are left behind to reduce source prompts. You can delete these as described above, with the understanding you may be prompted for the source of Visual Studio 2008 in the future, especially if you uninstall this ATL security update.
| Rob Mensching (Microsoft) |
[ posted 2010-02-05 | go to article ]
Tomorrow my team at work is going to see Avatar. I saw the movie when it first came out with my wife and a couple friends. But at the time we just went to a normal showing without 3D. Since then, I've been told that the 3D version is a sight to behold. So, I'm kinda' excited that our team is going to the local IMAX theater to see a larger than life 3D Avatar.
Anyway, after walking out of the theater the first time I kept wishing that the movie had a "making of Avatar" option. I know that theaters are not DVDs but the geek in me really wanted an explanation of the CGI used in Avatar. It took a while but Gizmodo eventually found it.
Tonight, kick back and watch a 22 minute behind the scenes making of Avatar. I'm looking forward to seeing it again knowing how the movie was built now.
[ posted 2010-02-03 | go to article ]
Okay, last week I posted a video of Jonathan Coulton and Kid Beyond. I had never heard of Kid Beyond before but his beatbox skills impressed me so much that I immediately ordered the album. Well, the album showed up yesterday afternoon. I ran up to my office, popped it into my computer, ripped the CD and let it sync down to my Zune. I listened to the album while answering emails for a bit before going to bed. But it wasn't until I was on the bus this morning with my headphones jacked in that I really came to appreciate Amplivate. When Mothership
came on, I it cranked up and started bobbing my head to the beat with a huge grin on my face.
Seriously, the only criticism I have of the album is that it isn't a full length album. It's an EP with 4 original songs and 4 remixes. I would love 8+ more songs to go with original 4 that were so awesome.
I think the part that impresses me most is that he creates the music from scratch. Remember, this album (at least the first 4 songs) are created solely by Kid Beyond's beatbox, rap and midi loop skills. All of the sounds come out of his mouth then he loops them to create the music.
Want to see it happen live? Watch him build up Mothership below before he drops into the lyrics.
And for the geeks out there watch Kid Beyond describe the creation of "Deep Inside".
[ posted 2010-01-29 | go to article ]
So for the last couple weeks, the guys have been asking for a "funny video". Earlier this week I tripped across this video via some random tweet. I knew it was going to be funny when I saw Jonathan Coulton was on stage.
If you are a geek, you probably already know JoCo. If you don't then you have to watch this rendition of Code Monkey (my first name actually makes a cameo!). If you find that video funny or representative of your life then you are a geek.
Now if you don't know who Kid Beyond is then you were not alone. I nor any of the other guys working on the WiX toolset knew of him. However, I can tell you after seeing this video then watching him perform live on YouTube, I ordered his Amplivate EP
right away.
Anyway, that's enough back story. Check out the video. It's slow to get started but by the 4:00 minute the battle is on.
I'm also curious who do you thought won? JoCo's Super Mario Bros theme or Kid Beyond's Strongbad Techno. Personally, I have to go with Kid Beyond because right when I thought he was completely boxed in he came out with something even geekier.
| Aaron Stebner (Microsoft) |
Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio [go to blog]
[ posted 2010-02-06 | go to article ]
For a while now, I’ve been maintaining a list of what version of the .NET Framework ships with each version of Windows. The list has gotten longer and more complicated over time as new versions of Windows and the .NET Framework have been released, plus the .NET Framework is off by default in some server versions of Windows.
Today, I noticed that Peter Marcu posted a very handy graphical view of what versions of the .NET Framework starting with 2.0 are a part of what version of Windows, including whether it is optional and on or off by default when you install Windows.
You can check out this graphical view at http://blogs.msdn.com/pmarcu/archive/2010/02/05/which-version-of-net-is-built-into-windows.aspx.
[ posted 2010-01-27 | go to article ]
I’ve heard from a few customers over the past few days who have had trouble installing the new 2009 version of TurboTax. In the cases I’ve heard about so far, the installer for TurboTax reports that the .NET Framework 3.5 SP1 is not correctly installed and instructs the user to re-install it. Unfortunately, attempts to uninstall and re-install the .NET Framework did not help in some of these cases.
Behind the scenes, it appears that TurboTax setup is running a verification process that is similar to the .NET Framework setup verification tool. This verification process checks that files and registry keys that should be installed by the .NET Framework 2.0, 3.0 and 3.5 setup packages are correctly installed on the computer. It is possible for the .NET Framework to be installed but for some of the files and/or registry values to have been removed by some other program (such as a registry cleaner tool, a disk cleanup tool, or even manual deletion by the user).
If TurboTax reports a problem with the .NET Framework 3.5, it suggests that you try to uninstall and re-install the .NET Framework 3.5. However, the exact steps needed to do this depend on what version of Windows you are running, and this has ended up causing confusion for the users I’ve heard from so far because the different steps aren’t very well documented in general.
For Windows XP and Windows Server 2003
If you are running a version of Windows before Windows Vista (such as Windows XP or Windows Server 2003), then in most cases, you can use the entry in Add/Remove Programs to repair the .NET Framework 3.5 or 3.5 SP1. If that doesn’t help, then you can use the steps in this blog post to remove and then re-install the .NET Framework 3.5 SP1.
For Windows Vista or Windows Server 2008
If you are running Windows Vista or Windows Server 2008, then the .NET Framework 2.0 and 3.0 are installed as OS components. As a result, the repair steps are more complicated. You will need to try the following:
For Windows 7
If you are running Windows 7, then the .NET Framework 2.0, 3.0 and 3.5 are all installed as OS components, and you cannot remove or re-install these versions using the Programs and Features control panel. On Windows 7, this is your only built-in repair option:
Run sfc.exe /scannow to attempt to repair the files that are a part of your OS (which will also repair some parts of the .NET Framework).
What to do if the above doesn’t help
Unfortunately, sfc.exe will only repair files that are protected by Windows Resource Protection. For the .NET Framework, only binary files that can be repaired using sfc.exe. Non-binary files (such as .config files) and registry keys cannot be repaired using sfc.exe. For non-binary files, the only options are to manually replace them with files from other computers or to repair your OS. For registry keys, the only options are to manually re-create them in regedit.exe or to repair your OS.
Here are some steps I’ve been able to use to narrow down the exact missing files and/or registry keys that cause TurboTax setup to think that the .NET Framework 3.5 SP1 is not correctly installed:
From the information in this log file, it is usually possible to figure out what files and/or registry keys need to be manually repaired on the computer. So far, the cases I’ve seen reported missing .config files and we have been able to get TurboTax setup to run correctly after copying the .config files from another computer or downloading them from here and putting them in the locations reported in this log file.
If you run into problems getting TurboTax 2009 setup to run correctly due to errors related to the .NET Framework 3.5, I encourage you to try the steps above. If they don’t help, please don’t hesitate to leave a comment on my blog and/or contact me and I’ll try to help as best as I can.
<update date="2/3/2010"> Added a link to a zip file that I posted with the .config files that have been causing the majority of the issues with TurboTax setup that I've seen so far. </update>
[ posted 2010-01-19 | go to article ]
Bob Arnson has been working on some simplifications to the WiX language in WiX v3.5, and he has posted some introductory information about a couple of these changes on his blog. I wanted to link to them here to hopefully help raise visibility for these simplifications:
I have found the major upgrade simplifications to be particularly useful. A while back, I wrote a step-by-step guide for authoring, building and testing major upgrades using WiX, and that guide later got added to the WiX documentation.
As you can see in Bob’s blog post and in the WiX MajorUpgrade element documentation, Bob’s simplifications will allow WiX v3.5 to handle creating the Upgrade table elements, scheduling the RemoveExistingProducts action, and optionally blocking downgrades if a user tries to install an older version of the MSI after installing a newer version. You only need to make sure that you include UpgradeCode and Version attributes in your Product element, and then you can use the new MajorUpgrade element in your WiX v3.5 authoring.
If you choose to, you can continue to use the more verbose syntax described in my previous blog post or the WiX documentation for authoring a major upgrade, but you could instead convert to the new MajorUpgrade element in order to more clearly express the behavior you intend for your MSI and to simplify your setup authoring.
The major upgrade and component authoring functionality described in the above blog posts is available in WiX v3.5 builds starting with the v3.5.1315.0 build on SourceForge, and I encourage you to check them out.
[ posted 2009-12-21 | go to article ]
Description of the issue
I heard from someone recently who noticed that some information was removed from the file machine.config after installing the .NET Framework 2.0 SP2. Their scenario looked like the following:
In the above scenario, the entries added to machine.config during .NET Framework 3.5 installation in step 2 were removed from machine.config during .NET Framework 2.0 SP2 installation in step 3.
How to work around this issue
If you run into a scenario where machine.config is incorrectly overwritten when installing the .NET Framework 2.0 SP2, you can work around it in one of the following ways:
What can cause this issue
.NET Framework 2.0 SP2 setup follows the standard Windows Installer file replacement logic for unversioned files, which causes it to not replace machine.config if that file was updated by some other program after it was originally installed. However, we have seen some cases where the last modified time stamp does not get updated during .NET Framework 3.5 setup. If this happens, then the installation of the .NET Framework 2.0 SP2 does not correctly recognize that some other program has updated machine.config, and as a result, the .NET Framework 2.0 SP2 installation process overwrites machine.config with a default copy that is included with the .NET Framework 2.0 SP2 installer.
One note – so far, we have only seen this issue affect computers that have an MSI-based version of the .NET Framework 2.0 installed (Windows XP, Windows Server 2003). The issue does not appear to affect versions of Windows that include the .NET Framework 2.0 as an OS component (Windows Vista, Windows Server 2008, Windows 7).
<update date="12/29/2009"> Added another possible workaround for this issue - install the .NET Framework 3.5 SP1 package instead of just installing the .NET Framework 2.0 SP2 package. </update>
| 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-02-08 | go to article ]
[ posted 2010-02-08 | go to article ]
[ posted 2010-02-08 | go to article ]
[ posted 2010-02-07 | 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