使用Windows Server 2012时,旧快捷方式不会从产品升级开始时从开始菜单中删除

StackOverflow https://stackoverflow.com//questions/21033971

当我们在Windows Server 2012计算机上升级时,旧快捷方式在开始菜单中留下。可执行文件从系统中删除,但旧的快捷方式仍然导致用户单击时出错,因为它不再在系统上。

这不会发生在Windows 2008 R2上,我认为我不认为我们的MSI是如何构建的问题。我在这里询问这个问题,看看其他人是否经历过同样的问题。

如果它可能有帮助,我们使用wix构建MSI,这里是代码段:

<DirectoryRef Id="The_ShortCut">
  <Component Id="The_ShortCut" Guid="{our-guid}">
    <Shortcut Id="TheShortCut.exe"
                                Name="Config Wizard"
                                Description="$(var.ProductNameLong)"
                                Target="[ShortCutFolder]OurCompany.Product.TheShortCut.exe"
                                WorkingDirectory="ShortCutFolder"
              Icon="TheShortcutIcon.Ico">
      <Icon Id="TheShortcutIcon.Ico" SourceFile="oursourcepath"/>
    </Shortcut>
    <RegistryValue Root="HKCU" Key="Software\OurCompany\OurProduct" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
    <RemoveFolder Id="Remove_Product" Directory="OurCompany"  On="uninstall"/>
    <RemoveFolder Id="Remove_Product_ShortCut" Directory="OurProduct_ShortCut" On="uninstall"/>
  </Component>
</DirectoryRef>
.

有帮助吗?

解决方案

我从同事的情况下得到了这个令人满意的答案:

这看起来不像您的包装本身。固定的项目只是对您第一次固定它的位置的* .lnk文件的引用。如果在升级后右键单击损坏的图块并转到文件位置,则它将旧的快捷键文件夹(由于文件夹路径已更改,因此不再存在)。

它似乎都是预期的行为。从这个线程,我不确定有一种方法可以以编程方式更新固定项目。

欢呼!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top