Как удалить бинарные действия при удалении? - PullRequest
1 голос
/ 02 июня 2010

Когда я удаляю каталог моего продукта, в котором находится бинарный файл с настраиваемым действием.Как я могу удалить это.Также при установке создается странно названный каталог - unistallation: "RSCustomActions.CA.dll-" и "RSCustomActions.CA.dll-0" (мое двоичное имя RSCustomActions.CA.dll)

Мой код WIX

<Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="ProgramFilesFolder">
          <Directory Id="Product.Id" Name="Product">
            <Directory Id="INSTALLLOCATION" Name="Product">
              <!-- TEST -->
              <Directory Id="Installer" Name="Installer">
                <Component Id="InstallerFiles"
                             Guid="{0904DB36-2496-419c-A992-B7D86F068F12}">
                  <File Id="RSCustomActions.CA.dll" Name="RSCustomActions.CA.dll" Source="Binaries\RSCustomActions.CA.dll" />                      
                </Component>
              </Directory>
              <!-- END TEST -->                  
              <?include "Product.Files.wxi" ?>                

            </Directory>
          </Directory>
        </Directory>
        <Directory Id="ProgramMenuFolder" Name="PMenu">
            <Directory Id="ProgramMenuDir" Name="Aspose">
                <?include "Product.ProgramMenu.wxi" ?>
            </Directory>
        </Directory>
        <Component Id="Main" Shared="yes" Guid="{EDD4477A-D188-469c-B8D0-4423377C03C6}" Feature="Main.InstallFeatures">
            <RemoveFolder Id="DeleteProgramMenuDir" Directory="ProgramMenuDir" On="uninstall" />
        </Component>
    </Directory>

«Product.Files.wxi» также содержит

<Component Id="Product.Remove" Guid="{C6D9D74C-66E8-442a-8E53-78A8D0E2B24D}">
    <RemoveFolder Id="Product.RemoveFolder.Action" On="uninstall"/>
  </Component>  

. Пожалуйста, предложите любой способ, как я могу удалить папку Installer и эти strage-папки с двоичным именем.

Спасибо!

1 Ответ

2 голосов
/ 02 июня 2010

Зачем вам нужно устанавливать CA DLL в качестве файла продукта? Вы можете просто положить его в двоичный стол и забыть об этом, например:

  <!-- This is a reference to the DLL where all custom actions reside -->
  <Binary Id="CustomActions" SourceFile="$(var.Root)\CA\CustomActions.CA.dll" />

И определение пользовательского действия выглядит примерно так:

  <!-- Sample CA definition  -->
  <CustomAction Id="MyAction" BinaryKey="CustomActions" DllEntry="MyActionMethod" />

Обратите внимание, что MyActionMethod должен быть определен в этой сборке CA и помечен соответствующим образом. В дистрибутиве WiX есть хороший пример этого в dtf.chm.

Надеюсь, это поможет.

...