wix没有更新可执行文件

时间:2013-01-02 15:46:35

标签: wix wix3.6

我是WIX的新手。实际上,这是我的第一个项目。所以我遇到问题应该不足为奇。

我安装了所有安装程序并准备好滚动,但今天早上我需要对我的服务进行更改,所以我进行了更改并编译。我构建了WIX项目并安装了它。我启动了我的服务并运行它,但旧代码已执行。事实证明,我的服务的旧版本仍然安装。这是否意味着新版本的服务未打包或者我缺少某种升级规则?出于某种原因,PDB文件已更新,但不是EXE。

下面是我的wxs文件。请善待......

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">

<?define AppName="My Service"?>
<?define MfgName="My Company"?>
<?define SourcePath="..\My Service\bin\$(var.Configuration)"?>

<Product Name="$(var.AppName)" Language="1033" Version="1.0.0.0" Manufacturer="$(var.MfgName)" 
       Id="*" UpgradeCode="063de86b-f12b-4af1-91ff-ce0917fffd5c" Codepage="1252">

<Package Id="*" Keywords="Installer" Description="$(var.AppName) Installer" 
         Manufacturer="$(var.MfgName)" Comments="My Service blah blah blah"
         InstallerVersion="200" Compressed="yes" InstallScope="perMachine" SummaryCodepage="1252" />

<!--
    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
    <MediaTemplate />
-->

<Media Id="1" Cabinet="setup.cab" EmbedCab="yes" DiskPrompt="CD-ROM #1"/>
<Property Id="DiskPrompt" Value="$(var.AppName) Installer [1]"/>

<Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="ProgramFilesFolder" Name="PFiles">
    <Directory Id="CompanyFolder" Name="$(var.MfgName)">
              <Directory Id="INSTALLFOLDER" Name="$(var.AppName)">
        <Component Id="ServiceFile" Guid="3688d9ee-08ed-4dde-87d8-3b7a752a99bf">
          <File Id="ServiceEXE" Name="My Service.exe" DiskId="1" Source="$(var.SourcePath)\My Service.exe" KeyPath="yes" Vital="yes" />
          <File Id="ServicePDB" Name="My Service.pdb" DiskId="1" Source="$(var.SourcePath)\MY Service.pdb" KeyPath="no" Vital="yes"/>
          <File Id="LibraryDLL" Name="library.dll" DiskId="1" Source="$(var.SourcePath)\library.dll" KeyPath="no" Vital="yes"/>
          <File Id="LibraryPDB" Name="library.pdb" DiskId="1" Source="$(var.SourcePath)\library.pdb" KeyPath="no" Vital="yes"/>
          <File Id="Config" Name="My Service.exe.config" DiskId="1" Source="$(var.SourcePath)\My Service.exe.config" KeyPath="no" Vital="yes"/>

          <ServiceInstall Id="InstallService" Name="MyService" Type="ownProcess" ErrorControl="normal" Start="auto"
                          DisplayName="$(var.AppName)" Description="My Service blah blah blah">
            <ServiceConfig OnInstall="yes" DelayedAutoStart="yes" />
          </ServiceInstall>
          <ServiceControl Id="ControlService" Name="MyService" Remove="both" Stop="both" Wait="no"/>
        </Component>
      </Directory>
    </Directory>
        </Directory>
    </Directory>

<Feature Id="MainFeature" Title="$(var.AppName) Setup" Level="1">
  <ComponentRef Id="ServiceFile"/>
    </Feature>
</Product>
</Wix>

1 个答案:

答案 0 :(得分:1)

如果安装成功但文件未更新,则应记录安装以查看原因。例如:

msiexec /i filename.msi /lvoicewarmupx log.txt

文件无法更新的一个原因是Windows Installer是否检查现有文件的版本,并且它比您尝试安装的文件版本更新。