2016-11-21 50 views
0

我有两个问题在这里,我不能换我的头周围维克斯Majorupgrade,并保持动态生成的文件上卸载

第一:我已动态生成的,我想继续卸载数据库文件。第二个:在升级时,根本没有文件被替换。

我为新升级做了什么:只是将发布版本从1.0.1升级到1.0.2。

这里是我的WiX文件:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension"> 
<Product Id="*" Name="St Mary Attendnace Mangement" Language="1033" Version="1.0.2" Manufacturer="Shady Atef" 
     UpgradeCode="UPGRADECODE"> 
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> 
<PropertyRef Id="NETFRAMEWORK45" /> 
<Condition 
    Message='This setup requires Microsoft .NET Framework 4.5 package or greater needs to be installed for this installation to continue.'> 
    <![CDATA[Installed OR NETFRAMEWORK45]]> 
</Condition> 
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." 
       Schedule="afterInstallExecute" /> 
<MediaTemplate EmbedCab="yes" /> 


<Feature Id="ProductFeature" Title="St_Mary_Attendance_Setup" Level="1"> 
    <ComponentGroupRef Id="C_CommonAssemblies" /> 

    <ComponentRef Id="ApplicationShortcuts" /> 

</Feature> 

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="ProgramFilesFolder"> 
    <Directory Id="INSTALLFOLDER" Name="St Mary Attendnace Mangement" /> 
    </Directory> 
    <Directory Id="ProgramMenuFolder"> 
    <Directory Id="ProgramMenuSubfolder" Name="St Mary Attendnace Mangement"> 
     <Component Id="ApplicationShortcuts" Guid="ED28E3D6-5365-48E7-BD76-B3295099CF47"> 
     <Shortcut Id="ApplicationStartMenuShortcut" 
        Name="St Mary Attendance Mangement-Shortcut" 
        Description="Manage your attendance easily" 
        Target="[#fil54A6944D4CD4C2F739233096DDDBD757]" 
        WorkingDirectory="INSTALLFOLDER" /> 
     <RemoveFolder Id="ProgramMenuSubfolder" On="uninstall" /> 
     <RegistryValue Root="HKCU" Key="Software\ShadyAtef\StMaryChurchAttendance" Name="installed" Type="integer" 
         Value="1" 
         KeyPath="yes" /> 
     </Component> 
    </Directory> 
    </Directory> 
</Directory> 

</Product> 
</Wix> 

注:C_CommonAssembliesHeat产生在每一个版本。 PS:我知道这个问题在这里重复了很多,我已经阅读了其中的大部分内容,但我无法找出问题所在。

回答

1

如果文件是由正在运行的应用程序生成的,那么在卸载时不会自动删除它们,如果您卸载Office,则除了所有Word文档都将被删除。如果你确实安装了数据库(然后填充它),那么它是卸载时候删除的候选人。

您的主要升级是在升级过程结束的InstallExecute之后。这意味着,新产品将在现有的产品上(和文件)进行安装,这意味着该文件重写规则,并修改数据文件不会被覆盖:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa370531(v=vs.85).aspx

的升级必须具有与以前的产品相同的UpgradeCode - 目前还不清楚它是否相同。

+0

db文件是在应用程序目录中创建的,它被擦除。 实际上整个目录被删除 是的,我使用相同的UpgradeCode。 –

+0

我发现了这个问题.. 简单所有文件都有版本号,但是我没有更改每个版本的程序集信息,所以它没有替换文件。 谢谢你的提示 –

+0

是的,应用文件版本覆盖规则,所以版本必须增加。很高兴你找到了它。 – PhilDW