WiX安装程序不会向程序和功能添加应用程序

时间:2016-01-11 15:49:09

标签: vb.net wix

我有一个基于VB.net的WiX安装程序,它似乎按要求运行,因为它将所有相关文件复制到计算机上的目标文件夹,但由于某种原因,安装程序似乎没有在程序和特征。我是WiX的相对新手,并将此WiX安装程序项目基于我开发的以前的Windows服务项目,该项目运行正常。希望有人能指出我哪里出错了。下面详细说明的代码,请注意出于安全目的,所有注册表项和GUID都已被删除:

 <?xml version="1.0" encoding="UTF-8"?>
 <?define SourceDir = "..\..\Bin\Debug" ?>
 <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"  xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<Product Id="*" Name="PSALERTSClient" Language="1033" Version="1.0.0.0" Manufacturer="Iberdrola, S.A." UpgradeCode="a6fd9179-efe6-47d1-bd8f-aec182d36c8b">
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />

<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate EmbedCab="yes" />
<Feature Id="ProductFeature" Title="PSALERTS Client" Level="1">
  <ComponentRef Id="cmpDirQuery" />
  <ComponentRef Id="cmpDirQueryOutput" />
  <ComponentRef Id="cmpQueryExe" />
  <ComponentRef Id="cmpQueryPdb" />
  <ComponentRef Id="cmpBusinessLogicDll" />
  <ComponentRef Id="cmpBusinessLogicPdb" />
  <ComponentRef Id="cmpBusinessObjectDll" />
  <ComponentRef Id="cmpBusinessObjectPdb" />
  <ComponentRef Id="cmpCommonDll" />
  <ComponentRef Id="cmpCommonPdb" />
  <ComponentRef Id="cmpDataAccessDll" />
  <ComponentRef Id="cmpDataAccessPdb" />
  <ComponentRef Id="cmpDPAPIHelperDll" />
  <ComponentRef Id="cmpDPAPIHelperPdb" />
  <ComponentRef Id="cmpLoggerDll" />
  <ComponentRef Id="cmpLoggerPdb" />
  <ComponentRef Id="cmpPSALERTSIni" />
  <ComponentRef Id="cmpPSALERTSXltm" />
  <ComponentRef Id="cmpPSALERTSUserGuideChm" />    
</Feature>
</Product>

<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="ProgramFilesFolder">
    <Directory Id="dirSPEnergyNetworks" Name="SP Energy Networks">
      <!-- <Component Id="cmpDirSPEnergyNetworks" Guid="{####################################}" Transitive="yes" /> -->
      <Directory Id="dirPSALERTS" Name="PSALERTS">
        <!-- <Component Id="cmpDirPSALERTS" Guid="{####################################}" Transitive="yes" /> -->
        <Directory Id="dirQuery" Name="Query">
          <Component Id="cmpDirQuery" Guid="{####################################}" KeyPath="yes">
            <CreateFolder Directory="dirQuery" />
            <RemoveFile Id="PurgeQuery" Name="*.*" On="uninstall" />
            <RemoveFolder Id="idDirQuery" On="uninstall" Directory="dirQuery" />
          </Component>
          <Directory Id="dirQueryOutput" Name="QueryOutput">
            <Component Id="cmpDirQueryOutput" Guid="{####################################}">
              <CreateFolder Directory="dirQueryOutput" />
              <RemoveFile Id="PurgeQueryOutput" Name="*.*" On="uninstall" />
              <RemoveFolder Id="idDirQueryOutputRemove" On="uninstall" Directory="dirQueryOutput" />
            </Component>
          </Directory>
          <Component Id="cmpQueryExe" Guid="*">
            <File Id="filQueryExe" KeyPath="yes" Source="$(var.SourceDir)\Query.exe" />
            <RemoveRegistryKey Id="RemoveQueryRegKey" Root="HKLM" Key="####################################" Action="removeOnUninstall" />
          </Component>
          <Component Id="cmpQueryPdb" Guid="*">
            <File Id="filQueryPdb" KeyPath="yes" Source="$(var.SourceDir)\Query.pdb" />
          </Component>
          <Component Id="cmpBusinessLogicDll" Guid="*">
            <File Id="filBusinessLogicDll" KeyPath="yes" Source="$(var.SourceDir)\BusinessLogic.dll"/>
          </Component>
          <Component Id="cmpBusinessLogicPdb" Guid="*">
            <File Id="filBusinessLogicPdb" KeyPath="yes" Source="$(var.SourceDir)\BusinessLogic.pdb" />
          </Component>
          <Component Id="cmpBusinessObjectDll" Guid="*">
            <File Id="filBusinessObjectDll" KeyPath="yes" Source="$(var.SourceDir)\BusinessObject.dll" />
          </Component>
          <Component Id="cmpBusinessObjectPdb" Guid="*">
            <File Id="filBusinessObjectPdb" KeyPath="yes" Source="$(var.SourceDir)\BusinessObject.pdb" />
          </Component>
          <Component Id="cmpCommonDll" Guid="*">
            <File Id="filCommonDll" KeyPath="yes" Source="$(var.SourceDir)\Common.dll" />
          </Component>
          <Component Id="cmpCommonPdb" Guid="*">
            <File Id="filCommonPdb" KeyPath="yes" Source="$(var.SourceDir)\Common.pdb" />
          </Component>
          <Component Id="cmpDataAccessDll" Guid="*">
            <File Id="filDataAccessDll" KeyPath="yes" Source="$(var.SourceDir)\DataAccess.dll" />
          </Component>
          <Component Id="cmpDataAccessPdb" Guid="*">
            <File Id="filDataAccessPdb" KeyPath="yes" Source="$(var.SourceDir)\DataAccess.pdb" />
          </Component>
          <Component Id="cmpDPAPIHelperDll" Guid="*">
            <File Id="filDPAPIHelperDll" KeyPath="yes" Source="$(var.SourceDir)\DPAPIHelper.dll" />
          </Component>
          <Component Id="cmpDPAPIHelperPdb" Guid="*">
            <File Id="filDPAPIHelperPdb" KeyPath="yes" Source="$(var.SourceDir)\DPAPIHelper.pdb" />
          </Component>
          <Component Id="cmpLoggerDll" Guid="*">
            <File Id="filLoggerDll" KeyPath="yes" Source="$(var.SourceDir)\Logger.dll" />
          </Component>
          <Component Id="cmpLoggerPdb" Guid="*">
            <File Id="filLoggerPdb" KeyPath="yes" Source="$(var.SourceDir)\Logger.pdb" />
          </Component>
          <Component Id="cmpPSALERTSIni" Guid="*">
            <File Id="filPSALERTSIni" KeyPath="yes" Source="$(var.SourceDir)\PSALERTS.ini" />
          </Component>
          <Component Id="cmpPSALERTSXltm" Guid="*">
            <File Id="filPSALERTSXltm" KeyPath="yes" Source="$(var.SourceDir)\PSALERTS.xltm" />
          </Component>
          <Component Id="cmpPSALERTSUserGuideChm" Guid="*">
            <File Id="filPSALERTSUserGuideChm" KeyPath="yes" Source="$(var.SourceDir)\PSALERTSUserGuide.Chm" />
          </Component>
      </Directory>
      </Directory>
    </Directory>
  </Directory>
</Directory>
</Fragment>
<Fragment>
</Fragment>
</Wix>

1 个答案:

答案 0 :(得分:1)

将ARPSYSTEMCOMPONENT设置为0.您可以在&lt;下添加以下行:包裹......&gt;线。

    <Property Id="ARPSYSTEMCOMPONENT">0</Property>

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