我在这里有两个问题,我无法解决问题
第一个:我有动态生成的数据库文件,我想继续卸载。 第二种:在升级时,根本不会替换任何文件。
我为新升级做了什么:只需将发布版本从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_CommonAssemblies
由Heat
在每次构建时生成。
PS:我知道这个问题在这里重复了很多,我已经阅读了大部分内容,但我找不到有什么问题。
答案 0 :(得分:1)
如果正在运行的应用程序生成文件,则在卸载时不会自动删除这些文件,如果卸载Office,则会删除所有Word文档。如果你确实安装了一个数据库(然后填充它),那么它是卸载时删除的候选者。
您的主要升级是在InstallExecute之后,即升级过程结束时。这意味着新产品将安装在现有产品(和文件)之上,这意味着文件覆盖规则适用,修改后的数据文件不会被覆盖:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa370531(v=vs.85).aspx
升级必须与之前的产品具有相同的UpgradeCode - 它是否相同或不相同。