Thank you guys for all your help!

MeCoco

On 3/9/2011 4:19 PM, David Watson wrote:
> If you have a directory element with no @Name it just makes the @Id an alias
> of the containing element.
>
> So your code makes any files targeted to MyApp.Binaries go in the same
> location as INSTALLDIR.
>
> -----Original Message-----
> From: MeCoco [mailto:vcotirl...@hotmail.com]
> Sent: 09 March 2011 15:03
> To: General discussion for Windows Installer XML toolset.
> Subject: Re: [WiX-users] INSTALLLOCATION wrong value during uninstall (has
> the default value, not the used one)
>
> Hi Michael,
>
> Thanks again for the explanation.
>
> Could you also tell me please what are the following lines of code
> actually do?:
> <DirectoryRef Id="INSTALLDIR">
> <Directory Id="MyApp.Binaries" />
> </DirectoryRef>
>
> Thanks!
> MeCoco
>
> On 3/9/2011 3:08 PM, Michael Urman wrote:
>> That doesn't look like it creates a component whose Directory is
>> INSTALLDIR. It may put the component's file in the same directory, but
>> since custom actions could override this, it doesn't count. What you
>> need is the Directory_ column of the Component table to say INSTALLDIR
>> instead of MyApp.Binaries, for at least one installed component.
>>
>> On Wed, Mar 9, 2011 at 02:29, MeCoco<vcotirl...@hotmail.com>   wrote:
>>> Hi Michael,
>>>
>>> Thanks for your answer.
>>>
>>> Is the following code not enough to preserve the INSTALLDIR directory?
>>>
>>> <Fragment>
>>> <DirectoryRef Id="INSTALLDIR">
>>> <Directory Id="MyApp.Binaries" />
>>> </DirectoryRef>
>>> </Fragment>
>>>
>>> <Fragment>
>>> <Component Id="MyApp.Binaries.app.config" Directory="MyApp.Binaries"
>>> Guid="MY-GUID">
>>> <File Id="MyApp.Binaries.app.config" Source="MyApp.app.config" />
>>> </Component>
>>> </Fragment>
>>>
>>> As the file MyApp.app.config ends up going into the INSTALLLOCATION
>>> directory?
>>>
>>>
>>> I am not even sure what the:
>>> <Fragment>
>>> <DirectoryRef Id="INSTALLDIR">
>>> <Directory Id="MyApp.Binaries" />
>>> </DirectoryRef>
>>> </Fragment>
>>>
>>> is doing as the:
>>>
>>> <Directory Id="MyApp.Binaries" />
>>>
>>> doesn't have any Name parameter, so it looks like redefining
>>> MyApp.Binaries to be the INSTALLDIR value. Am I assuming correct?
>>>
>>>
>>> Thanks,
>>> MeCoco
>>>
>>> On 3/8/2011 3:07 PM, Michael Urman wrote:
>>>> Directories are only automatically preserved when there is a component
>>>> that installs to it. So make sure at least one component installs to
>>>> INSTALLDIR.
>>>>
>>>> On Tue, Mar 8, 2011 at 03:31, MeCoco<vcotirl...@hotmail.com>     wrote:
>>>>> Hi all,
>>>>>
>>>>> I tried to create a small sample to reproduce the problem I'm having,
>>>>> and after a lot of tries I managed to reproduce it. The problem is
>>>>> described extensivly in my previous email, but a summary would be: if
>>>>> the user, when installing, changes the default directory (eg: from
>>>>> C:\Program Files\... to Z:\Program Files\...), then on uninstall (only
>>>>> real uninstall, not updates) one can see in the verbose log file that
>>>>> the INSTALLDIR property is set wrong to the default value (eg:
>>>>> C:\Program Files\...) and not to the folder where the user really
>>>>> installed the product (eg: Z:\Program Files\...)
>>>>>
>>>>> HOW to reproduce the problem:
>>>>>
>>>>> 1) If in the code I have the following:
>>>>>
>>>>> <Directory Id="TARGETDIR" Name="SourceDir">
>>>>> <Directory Id="ProgramFilesFolder">
>>>>> <Directory Id="INSTALLDIR" Name="$(var.InstallDirectoryName)">
>>>>>
>>>>> <Component Id="MyDoc.txt" Guid="6817A42D-30E7-464C-99DC-8FDBED6D70C6">
>>>>> <File Id="MyDoc.txt" Source="MyDoc.txt" KeyPath="yes" Checksum="yes" />
>>>>> </Component>
>>>>>
>>>>> <Directory Id="Modules" Name="Modules">
>>>>>
>>>>> <Component Id="MyLogo.txt" Guid="68C1561C-85F8-4E2F-81F4-41DDDBE35DDB">
>>>>> <File Id="MyLogo.txt" Source="MyLogo.txt" KeyPath="yes" Checksum="yes"
> />
>>>>> </Component>
>>>>>
>>>>> </Directory>
>>>>> </Directory>
>>>>> </Directory>
>>>>> </Directory>
>>>>>
>>>>>
>>>>> <!-- application features -->
>>>>> <Feature Id="Application" Title="$(var.ProductName) Application"
>>>>> Level="1" Absent="disallow">
>>>>> <ComponentRef Id="MyLogo.txt" />
>>>>> <ComponentRef Id="MyDoc.txt" />
>>>>> </Feature>
>>>>>
>>>>> I get everything correct, meaning I have in the log file the following:
>>>>> MSI (s) (08:24) [10:13:46:801]: PROPERTY CHANGE: Adding INSTALLDIR
>>>>> property. Its value is 'Z:\Program Files\MyTestInstallDirectory'.
>>>>> MSI (s) (08:24) [10:13:46:801]: PROPERTY CHANGE: Adding Modules
>>>>> property. Its value is 'Z:\Program
> Files\MyTestInstallDirectory\Modules'.
>>>>>
>>>>> 2) BUT, if in the code the MyDoc.txt component is missing, the
>>>>> INSTALLDIR property is wrong. So, for the code:
>>>>>
>>>>> <Directory Id="TARGETDIR" Name="SourceDir">
>>>>> <Directory Id="ProgramFilesFolder">
>>>>> <Directory Id="INSTALLDIR" Name="$(var.InstallDirectoryName)">
>>>>>
>>>>> <Directory Id="Modules" Name="Modules">
>>>>>
>>>>> <Component Id="MyLogo.txt" Guid="68C1561C-85F8-4E2F-81F4-41DDDBE35DDB">
>>>>> <File Id="MyLogo.txt" Source="MyLogo.txt" KeyPath="yes" Checksum="yes"
> />
>>>>> </Component>
>>>>>
>>>>> </Directory>
>>>>> </Directory>
>>>>> </Directory>
>>>>> </Directory>
>>>>>
>>>>>
>>>>> <!-- application features -->
>>>>> <Feature Id="Application" Title="$(var.ProductName) Application"
>>>>> Level="1" Absent="disallow">
>>>>> <ComponentRef Id="MyLogo.txt" />
>>>>> </Feature>
>>>>>
>>>>> In the log file I can see:
>>>>> MSI (s) (08:B0) [10:16:49:444]: PROPERTY CHANGE: Adding INSTALLDIR
>>>>> property. Its value is 'C:\Program Files\MyTestInstallDirectory\'.
>>>>> MSI (s) (08:B0) [10:16:49:444]: PROPERTY CHANGE: Modifying Modules
>>>>> property. Its current value is 'Z:\Program
>>>>> Files\MyTestInstallDirectory\Modules'. Its new value: 'Z:\Program
>>>>> Files\MyTestInstallDirectory\Modules\'.
>>>>>
>>>>>
>>>>> Is this a bug or am I doing something wrong? I think in both cases the
>>>>> INSTALLDIR should have the correct value (Z:\Program Files\...) on
>>>>> uninstall.
>>>>> Any tip is appreciated.
>>>>> Thank you,
>>>>> MeCoco
>>>>>
>>>>>
>>>>>
>>>>> On 3/7/2011 7:24 PM, MeCoco wrote:
>>>>>> Hi all,
>>>>>>
>>>>>> I have a very extensive installer, written by somebody that left our
>>>>>> company, and I have to add a custom action that should be executed at
>>>>>> the end of the uninstaller (only when completely removed from control
>>>>>> panel, not in case of an update) in order to remove a file that was at
>>>>>> a later point created by our product.
>>>>>>
>>>>>> I wrote a small test-installer to do just that and everything works
>>>>>> fine: the custom action that  should delete a specific file from the
>>>>>> installation directory is run at the end of the uninstallation:
>>>>>>
>>>>>> <CustomAction Id="QtExecDeferred_Cmd1" Property="QtExecDeferred1"
>>>>>> Value='"[SystemFolder]Cmd.exe"  /C del /Q "[INSTALLLOCATION
>>>>>> ]MyLogo.txt"'/>
>>>>>> <CustomAction Id="QtExecDeferred1" BinaryKey="WixCA"
>>>>>> DllEntry="CAQuietExec" Execute="deferred" Return="ignore"
>>>>>> Impersonate="no"/>
>>>>>>
>>>>>> <InstallExecuteSequence>
>>>>>> <Custom Action="QtExecDeferred_Cmd1"
>>>>>> Before="QtExecDeferred1">REMOVE="ALL" AND NOT
>>>>>> UPGRADINGPRODUCTCODE</Custom>
>>>>>> <Custom Action="QtExecDeferred1"
>>>>>> After="RemoveExistingProducts">REMOVE="ALL" AND NOT
>>>>>> UPGRADINGPRODUCTCODE</Custom>
>>>>>> </InstallExecuteSequence>
>>>>>>
>>>>>>
>>>>>>
>>>>>> The problem is that when I try to integrate the exact same code into
>>>>>> the big installer this doesn't work anymore. The installer is a
>>>>>> WIXUI_INSTALLDIR.
>>>>>> I generated a verbose log file and I noticed that the INSTALLLOCATION
>>>>>> property is wrong when uninstalling the product, instead of being the
>>>>>> real directory where the product was installed (chosen by the user,
>>>>>> eg: Z:\momo) is actually the default directory (eg: C:\Program
>>>>>> Files\MyApp), so the file that needs to be deleted:
>>>>>> "[INSTALLLOCATION]MyLogo.txt" is not found because the INSTALLLOCATION
>>>>>> is not correct. Weird is, that only in the uninstall case, the
>>>>>> INSTALLLOCATION property is wrong. In case of an update it looks ok
>>>>>> (eg Z:\momo). As one can see in the attached log file, some paths
>>>>>> there are the correct ones: Z:\Program Files\... and some are the
>>>>>> wrong ones: C:\Program Files\...
>>>>>>
>>>>>> As the INSTALLLOCATION is correct in my small test-installer during
>>>>>> uninstall, it is smth in this big and extensive installer that makes
>>>>>> it behave differently than my test-sample. The installer has million
>>>>>> of files that take care to install millions of binaries and I tried to
>>>>>> check to see where exactly the problem is, but I was not able to find
>>>>>> anything useful which would explain why on uninstall the
>>>>>> INSTALLLOCATION is wrong. I also tried to create a small sample in
>>>>>> order to reproduce the problem, but also without success: in all my
>>>>>> samples this works ok (INSTALLLOCATION is the correct one on
>>>>>> uninstall). Can smbd pls point out some hints or places where I could
>>>>>> look? I will put below the code-snippet that is related to that and I
>>>>>> will attach the log file. In the log file, the default installation
>>>>>> path is: C:\Program Files and the path chosen by the user during
>>>>>> install is: Z:\Program Files. The log is a verbose log of the
>>>>>> uninstall. Any hint is more than welcome!
>>>>>>
>>>>>> Code snippets:
>>>>>> ================
>>>>>>
>>>>>> <CustomAction Id="SetARPINSTALLLOCATION" Property="ARPINSTALLLOCATION"
>>>>>> Value="[INSTALLLOCATION]" />
>>>>>>
>>>>>> <!-- Sequences -->
>>>>>> <InstallExecuteSequence>
>>>>>> <Custom Action="SetARPINSTALLLOCATION" After="InstallValidate">NOT
>>>>>> Installed</Custom>
>>>>>> </InstallExecuteSequence>
>>>>>>
>>>>>>
>>>>>> <Directory Id="TARGETDIR" Name="SourceDir">
>>>>>> <Directory Id="ProgramFilesFolder">
>>>>>> <Directory Id="INSTALLLOCATION" Name="MyInstallDir">
>>>>>> <Directory Id="Modules" Name="Modules">
>>>>>>
>>>>>> </Directory>
>>>>>> </Directory>
>>>>>> </Directory>
>>>>>> </Directory>
>>>>>>
>>>>>>
>>>>>> <CustomAction Id="QtExecDeferred_Cmd1" Property="QtExecDeferred1"
>>>>>> Value='"[SystemFolder]Cmd.exe"  /C del /Q
>>>>>> "[INSTALLLOCATION]MyLogo.txt"'/>
>>>>>> <CustomAction Id="QtExecDeferred1" BinaryKey="WixCA"
>>>>>> DllEntry="CAQuietExec" Execute="deferred" Return="ignore"
>>>>>> Impersonate="no"/>
>>>>>>
>>>>>>
>>>>>> <InstallExecuteSequence>
>>>>>> <Custom Action="QtExecDeferred_Cmd1"
>>>>>> Before="QtExecDeferred1">REMOVE="ALL" AND NOT
>>>>>> UPGRADINGPRODUCTCODE</Custom>
>>>>>> <Custom Action="QtExecDeferred1"
>>>>>> After="RemoveExistingProducts">REMOVE="ALL" AND NOT
>>>>>> UPGRADINGPRODUCTCODE</Custom>
>>>>>> </InstallExecuteSequence>
>>>>>>
>>>>>>
>>>>>> <Property Id="INSTALLLOCATION">
>>>>>> <RegistrySearch Id="FindInstallLocation" Root="HKLM"
>>>>>> Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[OLDAPPFOUND]"
> Name="InstallLocation"
>>>>>> Type="raw" />
>>>>>> </Property>
>>>>>>
>>>>>> <Upgrade Id="$(var.UpgradeCode)">
>>>>>> <UpgradeVersion Property="OLDAPPFOUND" IncludeMinimum="yes"
>>>>>> Minimum="2.0.0.0" IncludeMaximum="no"
>>>>>>
> Maximum="!(bind.FileVersion.MyApp.Binaries.$(var.MyApp.TargetFileName))"/>
>>>>>>            ...
>>>>>> </Upgrade>
>>>>>>
>>>>>>
>>>>>>
>>>>>> <!-- application features -->
>>>>>> <Feature Id="Application" Title="$(var.ProductName) Application"
>>>>>> Level="1" Absent="disallow">
>>>>>> <ComponentGroupRef Id="MyApp.Binaries" />
>>>>>> <ComponentGroupRef Id="_3rdParty.Binaries"/>
>>>>>> <ComponentGroupRef Id="MyApp.Splash.Binaries"/>
>>>>>> <ComponentRef Id="ApplicationShortcut"/>
>>>>>> </Feature>
>>>>>> <Feature Id="Modules" Title="$(var.ProductName) My Modules" Level="1"
>>>>>> TypicalDefault="install">
>>>>>> <FeatureRef Id="Module.Audio" />
>>>>>> <FeatureRef Id="Module.Video" />
>>>>>> </Feature>
>>>>>>
>>>>>>
>>>>>>
>>>>>> <Fragment>
>>>>>> <Feature Id="Module.Video" Title="Webcam&     Screen Capturing"
>>>>>> Level="1" Absent="allow" InstallDefault="followParent">
>>>>>> <ComponentGroupRef Id="Video.Binaries"/>
>>>>>> <ComponentGroupRef Id="Video.Content"/>
>>>>>> </Feature>
>>>>>> </Fragment>
>>>>>> <Fragment>
>>>>>> <ComponentGroup Id="Video">
>>>>>> <Component Id="Video.Binaries.Modules.Video.dll"
>>>>>> Directory="Video.Binaries"
> Guid="{25E366B3-95D4-459C-91BA-EDFBC2D7104D}">
>>>>>> <File Id="Video.Binaries.Modules.Video.dll"
>>>>>> Source="$(var.Video.TargetDir)\Modules.Video.dll" />
>>>>>> </Component>
>>>>>> <Component Id="Video.Content.Video.png"
>>>>>> Directory="Video.Content.Resources"
>>>>>> Guid="{8B99C3D5-5C84-49B7-961B-2A0B8DAB6AC5}">
>>>>>> <File Id="Video.Content.Video.png"
>>>>>> Source="$(var.Video.ProjectDir)\Resources\Video.png" />
>>>>>> </Component>
>>>>>> <Component Id="Video.Content.vidSmall.png"
>>>>>> Directory="Video.Content.Resources"
>>>>>> Guid="{E0FB9672-27B5-42C1-9AF5-783BB9E6852D}">
>>>>>> <File Id="Video.Content.vidSmall.png"
>>>>>> Source="$(var.Video.ProjectDir)\Resources\vidSmall.png" />
>>>>>> </Component>
>>>>>> <Component Id="Video.Content.sample_screen.bmp"
>>>>>> Directory="Video.Content.Resources"
>>>>>> Guid="{877913CE-D40F-4233-8F3F-9F3171BEAB81}">
>>>>>> <File Id="Video.Content.sample_screen.bmp"
>>>>>> Source="$(var.Video.ProjectDir)\Resources\sample-screen.bmp" />
>>>>>> </Component>
>>>>>> <Component Id="Video.Content.sample_webcam.bmp"
>>>>>> Directory="Video.Content.Resources"
>>>>>> Guid="{6FDD639B-3310-4DF8-AA8C-4553AA43D182}">
>>>>>> <File Id="Video.Content.sample_webcam.bmp"
>>>>>> Source="$(var.Video.ProjectDir)\Resources\sample-webcam.bmp" />
>>>>>> </Component>
>>>>>> <Component Id="Video.Content.Screen.png"
>>>>>> Directory="Video.Content.Resources"
>>>>>> Guid="{0BD1BA3A-6485-4899-AC85-6DEA461D02F2}">
>>>>>> <File Id="Video.Content.Screen.png"
>>>>>> Source="$(var.Video.ProjectDir)\Resources\Screen.png" />
>>>>>> </Component>
>>>>>> <Component Id="Video.Content.screenSmall.png"
>>>>>> Directory="Video.Content.Resources"
>>>>>> Guid="{9D9C6C86-110B-4ddc-A1F8-AEE388B4B195}">
>>>>>> <File Id="Video.Content.screenSmall.png"
>>>>>> Source="$(var.Video.ProjectDir)\Resources\screenSmall.png" />
>>>>>> </Component>
>>>>>> <Component Id="Video.Content.Cam.png"
>>>>>> Directory="Video.Content.Resources"
>>>>>> Guid="{27785913-9433-4ff6-9E62-17DC1AEDDD52}">
>>>>>> <File Id="Video.Content.Cam.png"
>>>>>> Source="$(var.Video.ProjectDir)\Resources\Cam.png" />
>>>>>> </Component>
>>>>>> <Component Id="Video.Content.camSmall.png"
>>>>>> Directory="Video.Content.Resources"
>>>>>> Guid="{CD13E295-3077-4353-A68E-ACBD3A333C94}">
>>>>>> <File Id="Video.Content.camSmall.png"
>>>>>> Source="$(var.Video.ProjectDir)\Resources\camSmall.png" />
>>>>>> </Component>
>>>>>> </ComponentGroup>
>>>>>> </Fragment>
>>>>>> <Fragment>
>>>>>> <DirectoryRef Id="Video.Binaries" />
>>>>>> </Fragment>
>>>>>> <Fragment>
>>>>>> <ComponentGroup Id="Video.Binaries">
>>>>>> <ComponentRef Id="Video.Binaries.Modules.Video.dll" />
>>>>>> </ComponentGroup>
>>>>>> </Fragment>
>>>>>> <Fragment>
>>>>>> <DirectoryRef Id="Video.Content">
>>>>>> <Directory Id="Video.Content.Resources" Name="Resources" />
>>>>>> </DirectoryRef>
>>>>>> </Fragment>
>>>>>> <Fragment>
>>>>>> <ComponentGroup Id="Video.Content">
>>>>>> <ComponentRef Id="Video.Content.Video.png" />
>>>>>> <ComponentRef Id="Video.Content.vidSmall.png" />
>>>>>> <ComponentRef Id="Video.Content.sample_screen.bmp" />
>>>>>> <ComponentRef Id="Video.Content.sample_webcam.bmp" />
>>>>>> <ComponentRef Id="Video.Content.Screen.png" />
>>>>>> <ComponentRef Id="Video.Content.screenSmall.png" />
>>>>>> <ComponentRef Id="Video.Content.Cam.png" />
>>>>>> <ComponentRef Id="Video.Content.camSmall.png" />
>>>>>> </ComponentGroup>
>>>>>> </Fragment>
>>>>>> <Fragment>
>>>>>> <DirectoryRef Id="Modules">
>>>>>> <Directory Id="Video.Binaries" />
>>>>>> </DirectoryRef>
>>>>>> </Fragment>
>>>>>> <Fragment>
>>>>>> <DirectoryRef Id="Modules">
>>>>>> <Directory Id="Video.Content" />
>>>>>> </DirectoryRef>
>>>>>> </Fragment>
>>>>>> </Wix>
>>>>>>
>>>>>>
>>>>>> Thank you in advance!
>>>>>> MeCoco
>>>>>>
>>>>>>
>>>>>>
> -----------------------------------------------------------------------------
> -
>>>>>> What You Don't Know About Data Connectivity CAN Hurt You
>>>>>> This paper provides an overview of data connectivity, details
>>>>>> its effect on application quality, and explores various alternative
>>>>>> solutions. http://p.sf.net/sfu/progress-d2d
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> WiX-users mailing list
>>>>>> WiX-users@lists.sourceforge.net
>>>>>> https://lists.sourceforge.net/lists/listinfo/wix-users
> -----------------------------------------------------------------------------
> -
>>>>> What You Don't Know About Data Connectivity CAN Hurt You
>>>>> This paper provides an overview of data connectivity, details
>>>>> its effect on application quality, and explores various alternative
>>>>> solutions. http://p.sf.net/sfu/progress-d2d
>>>>> _______________________________________________
>>>>> WiX-users mailing list
>>>>> WiX-users@lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/wix-users
>>>>>
> -----------------------------------------------------------------------------
> -
>>>> What You Don't Know About Data Connectivity CAN Hurt You
>>>> This paper provides an overview of data connectivity, details
>>>> its effect on application quality, and explores various alternative
>>>> solutions. http://p.sf.net/sfu/progress-d2d
>>>> _______________________________________________
>>>> WiX-users mailing list
>>>> WiX-users@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/wix-users
>>>
> -----------------------------------------------------------------------------
> -
>>> Colocation vs. Managed Hosting
>>> A question and answer guide to determining the best fit
>>> for your organization - today and in the future.
>>> http://p.sf.net/sfu/internap-sfd2d
>>> _______________________________________________
>>> WiX-users mailing list
>>> WiX-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/wix-users
>>>
> -----------------------------------------------------------------------------
> -
>> Colocation vs. Managed Hosting
>> A question and answer guide to determining the best fit
>> for your organization - today and in the future.
>> http://p.sf.net/sfu/internap-sfd2d
>> _______________________________________________
>> WiX-users mailing list
>> WiX-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/wix-users
>
> -----------------------------------------------------------------------------
> -
> Colocation vs. Managed Hosting
> A question and answer guide to determining the best fit
> for your organization - today and in the future.
> http://p.sf.net/sfu/internap-sfd2d
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
> SDL PLC confidential, all rights reserved.
> If you are not the intended recipient of this mail SDL requests and requires 
> that you delete it without acting upon or copying any of its contents, and we 
> further request that you advise us.
> SDL PLC is a public limited company registered in England and Wales.  
> Registered number: 02675207.
> Registered address: Globe House, Clivemont Road, Maidenhead, Berkshire SL6 
> 7DY, UK.
>
>
> ------------------------------------------------------------------------------
> Colocation vs. Managed Hosting
> A question and answer guide to determining the best fit
> for your organization - today and in the future.
> http://p.sf.net/sfu/internap-sfd2d
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
>


------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to