I'm writing an installer for a Visual Studio add-in which requires me to
place a file in %USERPROFILE%\Visual Studio 2005\Addins or
%USERPROFILE%\Visual Studio 2008\Addins depending on the Visual Studio
version I'm installing for. If this directory doesn't exist, it should
be created, but on uninstallation of my package I probably shouldn't
remove it (because other add-ins may have been installed after mine).
So far I've used the following WiX markup:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="PersonalFolder">
<Directory Id="VS2008LOCATION" Name="Visual Studio 2008">
<Directory Id="VS2008ADDINSLOCATION" Name="Addins">
<Component Id="SearchWorkItems2008AddInComponent"
Guid="54e0b2b3-591c-4710-b254-1cabdaecd69c">
<RegistryValue Id="SearchWorkItems2008AddInKeyPath"
Root="HKCU"
Key="Software\!(loc.Property_CompanyName)\!(loc.Property_ProductName)"
Name="SearchWorkItems2008.AddIn" Value="1" Type="integer" KeyPath="yes"
/>
<File Name="SearchWorkItems2008.AddIn"
Source="..\..\..\SearchWorkItems\bin\SearchWorkItems2008.AddIn" />
</Component>
<Component Id="SearchWorkItems2008DllComponent"
Guid="de9af0a3-f099-4fd3-b018-19ce570656da">
<RegistryValue Id="SearchWorkItems2008DllKeyPath"
Root="HKCU"
Key="Software\!(loc.Property_CompanyName)\!(loc.Property_ProductName)"
Name="SearchWorkItems2008.dll" Value="1" Type="integer" KeyPath="yes" />
<File Name="SearchWorkItems2008.dll"
Source="..\..\..\SearchWorkItems\bin\SearchWorkItems2008.dll" />
</Component>
<Component Id="SearchTemplate2008WiqComponent"
Guid="7646d109-a17f-48ec-8447-fe48a0fddcb4">
<RegistryValue Id="SearchWorkItems2008WiqKeyPath"
Root="HKCU"
Key="Software\!(loc.Property_CompanyName)\!(loc.Property_ProductName)"
Name="SearchWorkItems2008.wiq" Value="1" Type="integer" KeyPath="yes" />
<File Id="SearchTemplate2008WiqFile"
Name="SearchTemplate.wiq"
Source="..\..\..\SearchWorkItems\bin\SearchTemplate.wiq" />
</Component>
</Directory>
</Directory>
</Directory>
</Directory>
The problem is that I get an ICE64 validation error (The directory
VS2008LOCATION/VS2008ADDINSLOCATION is in the user profile but is not
listed in the RemoveFile table). After doing some searching the common
solution to this problem is to add a RemoveFolder element, however, I'm
not sure this is the correct thing to do in this instance because my
installer does not "own" those directories.
Is there a better way around the ICE64 validation error? Is there a
better way for me to determine the location of the VS 2005/2008 Addins
directories?
Thanks,
William Bartholomew
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users