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
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to