Re: [WiX-users] How does heat maintain consistent GUIDs?

2015-03-29 Thread Rob Mensching
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?

2015-03-29 Thread Pat Blair
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

2015-03-29 Thread John Cooper
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?

2015-03-29 Thread John Cooper
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

2015-03-29 Thread Joel Budreau
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?

2015-03-29 Thread Hoover, Jacob
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?

2015-03-29 Thread cknoll
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

2015-03-29 Thread Phil Wilson
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?

2015-03-29 Thread Pat Blair
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