0

我是 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>
4

1 回答 1

1

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

msiexec /i filename.msi /lvoicewarmupx log.txt

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

于 2013-01-02T18:47:59.973 回答