Re: [WiX-users] How does heat maintain consistent GUIDs?
so I don't make mistakes based on an incomplete comprehension - very wise. _ Short replies here. Complete answers over there: http://www.firegiant.com/ -Original Message- From: Pat Blair [mailto:p...@daburu.net] Sent: Sunday, March 29, 2015 7:12 AM To: wix-users@lists.sourceforge.net Subject: [WiX-users] How does heat maintain consistent GUIDs? I am curious to know how WiX keeps track of GUIDSs automatically generated for files when we use HeatDirectory. For example, I have a project with the following in my .wixproj file... Target Name=BeforeBuild PropertyGroup WixToolPathC:\SourceControl\WiX39\/WixToolPath /PropertyGroup HeatDirectory ToolPath=$(WixToolPath) Directory=C:\users\me\Desktop\SourceFiles ComponentGroupName=MyComponentGroup DirectoryRefId=INSTALLFOLDER AutogenerateGuids=true GenerateGuidsNow=false SuppressFragments=true SuppressRootDirectory=true PreprocessorVariable=var.SourceFilesDir OutputFile=Components.wxs / /Target If I set AutogenerateGuids=true, my output file contains components like this: Component Id=cmpA609F30B9E3AECCDEE4D779C8B7308ED Guid=* File Id=fil314398091041DF4762128892E7C98AA7 KeyPath=yes Source=$(var.SourceFilesDir)\Sample1.txt / /Component I note that Component/@Guid=*. After generating the .MSI, I open it with Orca and see that the ComponentId for each Component (for each file) is the same. If I change my HeatDirectory element so that AutogenerateGuids=false and GenerateGuidsNow=true, the ComponentIds seem to change. If I understand correctly, this is how it should work and by using AutogenerateGuids, my installers can track a given file from install to install. I also think I understand that the GUIDs will remain the same so long as the file names and paths to which they are installed doesn't change, so this approach will let me do minor upgrades because the installers can tell that two versions of a file from two different installers are the same component because the ComponentIDs match. But what I'm wondering is: How are these consistent GUIDs that I get when I use AutogenerateGuids=true remembered from build to build? Are they generated by some algorithm that will always produce the same GUID for a file with a given name installed to a given directory, or are they stored somewhere. And if they are stored somewhere, where are they stored? I'm hoping this isn't a dumb question, but I feel like I need to understand this before using the feature so I don't make mistakes based on an incomplete comprehension of what's happening behind-the-scenes. Many thanks. -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
[WiX-users] How does heat maintain consistent GUIDs?
I am curious to know how WiX keeps track of GUIDSs automatically generated for files when we use HeatDirectory. For example, I have a project with the following in my .wixproj file... Target Name=BeforeBuild PropertyGroup WixToolPathC:\SourceControl\WiX39\/WixToolPath /PropertyGroup HeatDirectory ToolPath=$(WixToolPath) Directory=C:\users\me\Desktop\SourceFiles ComponentGroupName=MyComponentGroup DirectoryRefId=INSTALLFOLDER AutogenerateGuids=true GenerateGuidsNow=false SuppressFragments=true SuppressRootDirectory=true PreprocessorVariable=var.SourceFilesDir OutputFile=Components.wxs / /Target If I set AutogenerateGuids=true, my output file contains components like this: Component Id=cmpA609F30B9E3AECCDEE4D779C8B7308ED Guid=* File Id=fil314398091041DF4762128892E7C98AA7 KeyPath=yes Source=$(var.SourceFilesDir)\Sample1.txt / /Component I note that Component/@Guid=*. After generating the .MSI, I open it with Orca and see that the ComponentId for each Component (for each file) is the same. If I change my HeatDirectory element so that AutogenerateGuids=false and GenerateGuidsNow=true, the ComponentIds seem to change. If I understand correctly, this is how it should work and by using AutogenerateGuids, my installers can track a given file from install to install. I also think I understand that the GUIDs will remain the same so long as the file names and paths to which they are installed doesn't change, so this approach will let me do minor upgrades because the installers can tell that two versions of a file from two different installers are the same component because the ComponentIDs match. But what I'm wondering is: How are these consistent GUIDs that I get when I use AutogenerateGuids=true remembered from build to build? Are they generated by some algorithm that will always produce the same GUID for a file with a given name installed to a given directory, or are they stored somewhere. And if they are stored somewhere, where are they stored? I'm hoping this isn't a dumb question, but I feel like I need to understand this before using the feature so I don't make mistakes based on an incomplete comprehension of what's happening behind-the-scenes. Many thanks. -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] General Visual Studio 2013 Help
You need to make sure that the path to the library is in the list of paths searched for libraries, and you need to make sure the library filename is the list of libraries to be linked. Based on the discussion in the stackoverflow link, I suspect the actual file name (msi.lib) to link is what is missing. See http://www.codeproject.com/Articles/1747/MSI-Custom-Action-DLL You may also need to link to other libraries such as crypt32.lib -- John Merryweather Cooper Senior Software Engineer | Integration Development Group | Continuing Development Jack Henry Associates, Inc.® | Lenexa, KS 66214 | Ext: 431050 |jocoo...@jackhenry.com -Original Message- From: Joel Budreau [mailto:joel.budr...@gmail.com] Sent: Sunday, March 29, 2015 8:51 AM To: General discussion about the WiX toolset. Subject: [WiX-users] General Visual Studio 2013 Help Hey guys, I thought I’d reach out to this group to see if anyone knew the answer to my problem off the top of their head: http://stackoverflow.com/questions/29329735/i-cant-figure-out-how-to-link-msi-lib-to-my-visual-studio-c-project http://stackoverflow.com/questions/29329735/i-cant-figure-out-how-to-link-msi-lib-to-my-visual-studio-c-project Thanks, Joel -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users NOTICE: This electronic mail message and any files transmitted with it are intended exclusively for the individual or entity to which it is addressed. The message, together with any attachment, may contain confidential and/or privileged information. Any unauthorized review, use, printing, saving, copying, disclosure or distribution is strictly prohibited. If you have received this message in error, please immediately advise the sender by reply email and delete all copies. -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] How does heat maintain consistent GUIDs?
I believe it uses an algorithm to generate the GUID based on the KeyPath, but that's just from memory. -- John Merryweather Cooper Senior Software Engineer | Integration Development Group | Continuing Development Jack Henry Associates, Inc.® | Lenexa, KS 66214 | Ext: 431050 |jocoo...@jackhenry.com -Original Message- From: Pat Blair [mailto:p...@daburu.net] Sent: Sunday, March 29, 2015 9:12 AM To: wix-users@lists.sourceforge.net Subject: [WiX-users] How does heat maintain consistent GUIDs? I am curious to know how WiX keeps track of GUIDSs automatically generated for files when we use HeatDirectory. For example, I have a project with the following in my .wixproj file... Target Name=BeforeBuild PropertyGroup WixToolPathC:\SourceControl\WiX39\/WixToolPath /PropertyGroup HeatDirectory ToolPath=$(WixToolPath) Directory=C:\users\me\Desktop\SourceFiles ComponentGroupName=MyComponentGroup DirectoryRefId=INSTALLFOLDER AutogenerateGuids=true GenerateGuidsNow=false SuppressFragments=true SuppressRootDirectory=true PreprocessorVariable=var.SourceFilesDir OutputFile=Components.wxs / /Target If I set AutogenerateGuids=true, my output file contains components like this: Component Id=cmpA609F30B9E3AECCDEE4D779C8B7308ED Guid=* File Id=fil314398091041DF4762128892E7C98AA7 KeyPath=yes Source=$(var.SourceFilesDir)\Sample1.txt / /Component I note that Component/@Guid=*. After generating the .MSI, I open it with Orca and see that the ComponentId for each Component (for each file) is the same. If I change my HeatDirectory element so that AutogenerateGuids=false and GenerateGuidsNow=true, the ComponentIds seem to change. If I understand correctly, this is how it should work and by using AutogenerateGuids, my installers can track a given file from install to install. I also think I understand that the GUIDs will remain the same so long as the file names and paths to which they are installed doesn't change, so this approach will let me do minor upgrades because the installers can tell that two versions of a file from two different installers are the same component because the ComponentIDs match. But what I'm wondering is: How are these consistent GUIDs that I get when I use AutogenerateGuids=true remembered from build to build? Are they generated by some algorithm that will always produce the same GUID for a file with a given name installed to a given directory, or are they stored somewhere. And if they are stored somewhere, where are they stored? I'm hoping this isn't a dumb question, but I feel like I need to understand this before using the feature so I don't make mistakes based on an incomplete comprehension of what's happening behind-the-scenes. Many thanks. -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users NOTICE: This electronic mail message and any files transmitted with it are intended exclusively for the individual or entity to which it is addressed. The message, together with any attachment, may contain confidential and/or privileged information. Any unauthorized review, use, printing, saving, copying, disclosure or distribution is strictly prohibited. If you have received this message in error, please immediately advise the sender by reply email and delete all copies. -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
[WiX-users] General Visual Studio 2013 Help
Hey guys, I thought I’d reach out to this group to see if anyone knew the answer to my problem off the top of their head: http://stackoverflow.com/questions/29329735/i-cant-figure-out-how-to-link-msi-lib-to-my-visual-studio-c-project http://stackoverflow.com/questions/29329735/i-cant-figure-out-how-to-link-msi-lib-to-my-visual-studio-c-project Thanks, Joel -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] How does heat maintain consistent GUIDs?
I forget if it's the key path or not, but it uses the SHA checksum of a string based on a namespace GUID and the seed value.. Key path as the seed is very logical in that regards. On Mar 29, 2015, at 9:35 AM, John Cooper jocoo...@jackhenry.com wrote: I believe it uses an algorithm to generate the GUID based on the KeyPath, but that's just from memory. -- John Merryweather Cooper Senior Software Engineer | Integration Development Group | Continuing Development Jack Henry Associates, Inc.® | Lenexa, KS 66214 | Ext: 431050 |jocoo...@jackhenry.com -Original Message- From: Pat Blair [mailto:p...@daburu.net] Sent: Sunday, March 29, 2015 9:12 AM To: wix-users@lists.sourceforge.net Subject: [WiX-users] How does heat maintain consistent GUIDs? I am curious to know how WiX keeps track of GUIDSs automatically generated for files when we use HeatDirectory. For example, I have a project with the following in my .wixproj file... Target Name=BeforeBuild PropertyGroup WixToolPathC:\SourceControl\WiX39\/WixToolPath /PropertyGroup HeatDirectory ToolPath=$(WixToolPath) Directory=C:\users\me\Desktop\SourceFiles ComponentGroupName=MyComponentGroup DirectoryRefId=INSTALLFOLDER AutogenerateGuids=true GenerateGuidsNow=false SuppressFragments=true SuppressRootDirectory=true PreprocessorVariable=var.SourceFilesDir OutputFile=Components.wxs / /Target If I set AutogenerateGuids=true, my output file contains components like this: Component Id=cmpA609F30B9E3AECCDEE4D779C8B7308ED Guid=* File Id=fil314398091041DF4762128892E7C98AA7 KeyPath=yes Source=$(var.SourceFilesDir)\Sample1.txt / /Component I note that Component/@Guid=*. After generating the .MSI, I open it with Orca and see that the ComponentId for each Component (for each file) is the same. If I change my HeatDirectory element so that AutogenerateGuids=false and GenerateGuidsNow=true, the ComponentIds seem to change. If I understand correctly, this is how it should work and by using AutogenerateGuids, my installers can track a given file from install to install. I also think I understand that the GUIDs will remain the same so long as the file names and paths to which they are installed doesn't change, so this approach will let me do minor upgrades because the installers can tell that two versions of a file from two different installers are the same component because the ComponentIDs match. But what I'm wondering is: How are these consistent GUIDs that I get when I use AutogenerateGuids=true remembered from build to build? Are they generated by some algorithm that will always produce the same GUID for a file with a given name installed to a given directory, or are they stored somewhere. And if they are stored somewhere, where are they stored? I'm hoping this isn't a dumb question, but I feel like I need to understand this before using the feature so I don't make mistakes based on an incomplete comprehension of what's happening behind-the-scenes. Many thanks. -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users NOTICE: This electronic mail message and any files transmitted with it are intended exclusively for the individual or entity to which it is addressed. The message, together with any attachment, may contain confidential and/or privileged information. Any unauthorized review, use, printing, saving, copying, disclosure or distribution is strictly prohibited. If you have received this message in error, please immediately advise the sender by reply email and delete all copies. -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list
Re: [WiX-users] How does heat maintain consistent GUIDs?
Also see Rob's response here: http://stackoverflow.com/questions/16120473/wix-is-it-safe-to-use-autogenerated-guid-on-component-tags -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/How-does-heat-maintain-consistent-GUIDs-tp7599757p7599762.html Sent from the wix-users mailing list archive at Nabble.com. -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Registering TypeLib in both native and Wow6432Node
You don't need to - Interface entries aren't architecture dependent. They end up in the virtual hive HKCR\Interface, which is a merge of \Software\Classes\Interface from HKLM and HKCU for the interactive user. CLSIDS depend on bitness because they are used to load a Dll into a process. Interface entries just tell COM how to move data between COM clients and servers. --- Phil Wilson On Fri, Mar 27, 2015 at 2:10 PM, Samer Vazdekis sbazd...@yahoo.com wrote: HI there, I am installing a x64 bit app along with a 32-bit dll. The 32-bit DLL is being hosted in a 32-bit dllhost. Both my x64 App and the 32-bit dllhost communicate using COM. Therefore, I need to install my type lib under both the native (x64) registry path and under the Wow6432Node path along with Interfaces for both, so basically I need to do the following: Component Id=COMPONENT_NAME Guid=GUID Win64=no File Id=FILE-ID KeyPath=yes Source=DIR/myDLL.dll TypeLib Id=GUID Language=0 MajorVersion=1 MinorVersion=0 Interface Id=GUID Name=Interface_1 ProxyStubClassId32={00020424---C000-0046} / Interface Id=GUID Name=Interface_2 ProxyStubClassId32={00020424---C000-0046} / /TypeLib /File/Component Component Id=COMPONENT_NAME Guid=GUID File Id=FILE-ID KeyPath=yes Source=DIR/myDLL.dll TypeLib Id=GUID Language=0 MajorVersion=1 MinorVersion=0 Interface Id=GUID Name=Interface_1 ProxyStubClassId32={00020424---C000-0046} / Interface Id=GUID Name=Interface_2 ProxyStubClassId32={00020424---C000-0046} / /TypeLib /File/Component I am installing on a x64 Windows. No is it possible to do this without duplicating the installation for the myDLL.dll file?. It won't compile without wrapping the TypeLib with a File tag. What is the custom t do this? Thanks,Sam. -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] How does heat maintain consistent GUIDs?
Thanks to everyone for your responses. This helps a great deal and I am most grateful. The link to the suggested post seems to confirm what everyone is saying: ...Took us a long time to get to a algorithm that is stable for Component Guids. Huge win for everyone once it worked. :) – Rob Mensching http://stackoverflow.com/users/23852/rob-mensching Apr 22 '13 at 11:06 http://stackoverflow.com/questions/16120473/wix-is-it-safe-to-use-autogenerated-guid-on-component-tags#comment23067092_16121146 On Sun, Mar 29, 2015 at 3:52 PM, cknoll caleb.kn...@ni.com wrote: Also see Rob's response here: http://stackoverflow.com/questions/16120473/wix-is-it-safe-to-use-autogenerated-guid-on-component-tags -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/How-does-heat-maintain-consistent-GUIDs-tp7599757p7599762.html Sent from the wix-users mailing list archive at Nabble.com. -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users