tag:blogger.com,1999:blog-985159635193633235.post3601447700700849093..comments2024-03-25T00:30:02.127-07:00Comments on ISWIX: Even developers are concerned about the environment...Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.comBlogger6125tag:blogger.com,1999:blog-985159635193633235.post-32321406379307188772008-01-16T13:42:00.000-08:002008-01-16T13:42:00.000-08:00Thanks for the tip! This would have helped a lot ...Thanks for the tip! This would have helped a lot in a recent installation that I created. In that case I resorted to using custom actions to determine if it was a 32 bit or 64 bit OS.Rob Hunterhttp://www.blogger.com/profile/06995735926857744080noreply@blogger.comtag:blogger.com,1999:blog-985159635193633235.post-57160619879604671292008-01-17T07:38:00.000-08:002008-01-17T07:38:00.000-08:00I'm suprised MSI doesn't error on this sin...I'm suprised MSI doesn't error on this since they say you can't do that.<br><br>Cool stuff :-)ShadowWolfhttp://www.blogger.com/profile/17170306422408594103noreply@blogger.comtag:blogger.com,1999:blog-985159635193633235.post-31276285876232269082008-01-17T07:48:00.000-08:002008-01-17T07:48:00.000-08:00I have some concerns about recommending this metho...I have some concerns about recommending this method. You propose that the Summary Information Stream not supporting multiple processors is a design limitation based on the fact that technology changed. I disagree with that assessment. I believe the limitation is intentional and that there are valid reasons for the limitation.<br><br>The install you created is very basic. In particular, have you tested this with a 64-bit component that contains registry entries? I haven't tried this so I'm not certain, but one of my concerns is that registry entries associated with the 64-bit component would be placed in the 32-bit registry location instead of the 64-bit registry location. Another concern (also not tested) would be if both 32-bit components and 64-bit components are added to the same "Program Files (x86)" folder on 64-bit systems. There are a couple of reasons why you don't want that to happen: 1) If you have a 32-bit executable with the same name as a 64-bit executable. 2) Future OS upgrades - the reason MS has you split the two locations is so that when 32-bit support is dropped, the 64-bit parts of the application will still work (if developed according to MS best practices, in theory anyway). Lastly, what if you need to do a 64-bit registry lookup? Will a 32-bit package with 64-bit components allow/properly evaluate using the msidbLocatorType64bit in the Type field of the RegLocator table? These are just a few of my concerns that apply to more complex installation packages. Users should evaluate their needs based on their own situations and realize that, yes, there really is a reason why the Summary Information Stream doesn't support specifying multiple processor architectures.Colby Ringeisenhttp://www.blogger.com/profile/08696301684260588101noreply@blogger.comtag:blogger.com,1999:blog-985159635193633235.post-84144618611357861272008-01-17T12:06:00.000-08:002008-01-17T12:06:00.000-08:00Colby,Your concerns are valid. I should have emph...Colby,<br>Your concerns are valid. I should have emphasized in the post that this should be used for a truly hybrid application. A pure 64-bit application should be in a 64-bit Windows Installer package. An application that contains a mix of architectures works fine with this approach. I have used this several times.<br><br>i.e. You have an application where certain binaries are changed for 64-bit, but the application retains some 32-bit binaries. The example will work with the scenario described.<br><br>Perhaps I made the mistake of assuming that hybrid applied to both the installation and the application.Aaron Shurtshttp://www.blogger.com/profile/16538587727045104430noreply@blogger.comtag:blogger.com,1999:blog-985159635193633235.post-62253811623930903882008-01-17T13:56:00.000-08:002008-01-17T13:56:00.000-08:00Aaron,I got that. I was referring to hybrid insta...Aaron,<br>I got that. I was referring to hybrid installations as well (packages containing both 32-bit components and 64-bit components).Colby Ringeisenhttp://www.blogger.com/profile/08696301684260588101noreply@blogger.comtag:blogger.com,1999:blog-985159635193633235.post-34312504094774299532008-01-18T06:42:00.000-08:002008-01-18T06:42:00.000-08:00Colby,Right, your application will use the 32-bit ...Colby,<br>Right, your application will use the 32-bit portion of the registry, except for your 64-bit components which will use reflection to also write to the 32-bit portion of the registry. <br><br>You can also have hybrid registry edits as well. Create two components with the same registry keys. Mark one as a 64-bit component. It will write to the 64-bit portion of the registry. You would want to do this because not all of the registry is reflected.<br><br>This is not the end-all, be-all, guide. Every application will behave differently for a given circumstance. Just a guideline because someone asked.Aaron Shurtshttp://www.blogger.com/profile/16538587727045104430noreply@blogger.com