программа установки не удаляет файлы - PullRequest
2 голосов
/ 09 апреля 2011

У меня очень простой проект установки:

  <Product Id="*" UpgradeCode="$(var.UpgradeCode)" Name="$(var.ProductLongName)" Language="1033"
         Version="$(var.ProductVersion)" Manufacturer="$(var.Manufacturer)">

    <Package InstallerVersion="200" Compressed="yes" />

    <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />

    <!-- Installation Parts -->
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="WindowsFolder">
        <Component Id="ProductComponent" Guid="b3250107-4859-4d5f-857c-1756af65ec32">
          <File Id='SomeFile' Name='SomeFile.scr'
                Source='SomeFile.scr' Vital='yes' />
           <!-- Other files -->
        </Component>
      </Directory>
    </Directory>

    <Feature Id="ProductFeature" Title="$(var.ProductShortName)" Level="1">
      <ComponentRef Id="ProductComponent" />
      <!-- Note: The following ComponentGroupRef is required to pull in generated authoring from project references. -->
      <ComponentGroupRef Id="Product.Generated" />
    </Feature>

    <!-- Prerequisites -->
    <PropertyRef Id="NETFRAMEWORK40CLIENT"/>

    <Condition Message="This application requires .NET Framework 4.0. Please install the .NET Framework then run this installer again.">
      <![CDATA[Installed OR NETFRAMEWORK40CLIENT]]>
    </Condition>

  </Product>

Он устанавливается нормально, и удаление, похоже, тоже завершается нормально, но все файлы остаются.Они не удаляются.
Есть идеи?

Ответы [ 2 ]

7 голосов
/ 09 апреля 2011

Итак, эта проблема исчезла, когда я изменил guid компонента на недавно сгенерированный. Не очень понимаю, почему. Weird.

1 голос
/ 12 апреля 2011

GUID компонента в OP был в нижнем регистре.По соглашению MSI предпочитает, чтобы идентификаторы GUID были в верхнем регистре, на случай, если вам нужно будет передать идентификатор GUID через границу службы в качестве (открытого) свойства.Был ли ваш новый GUID в верхнем регистре, случайно?

...