Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Installation WiX:功能包含相同的目录,但在安装过程中必须合并到一个唯一的目录中_Installation_Wix_Wix3.5 - Fatal编程技术网

Installation WiX:功能包含相同的目录,但在安装过程中必须合并到一个唯一的目录中

Installation WiX:功能包含相同的目录,但在安装过程中必须合并到一个唯一的目录中,installation,wix,wix3.5,Installation,Wix,Wix3.5,我正在尝试为应用程序创建安装程序。我的应用程序包含一个根应用程序和一组可以独立安装的子产品。我想创建一个安装程序来管理安装选项 在编译和链接之后,我得到以下结构 对于MyAppRoot: ..\MyAppRoot\bin ..\MyAppRoot\config ..\MyAppRoot\config\http ..\MyAppRoot\config\was 和其他子目录 每个子产品都有相同的组织: 对于MySubPrd: ..\MySubPrd\bin ..\MySubPrd\confi

我正在尝试为应用程序创建安装程序。我的应用程序包含一个根应用程序和一组可以独立安装的子产品。我想创建一个安装程序来管理安装选项

在编译和链接之后,我得到以下结构

对于MyAppRoot:

  • ..\MyAppRoot\bin
  • ..\MyAppRoot\config
  • ..\MyAppRoot\config\http
  • ..\MyAppRoot\config\was
  • 和其他子目录
每个子产品都有相同的组织:

对于MySubPrd:

  • ..\MySubPrd\bin
  • ..\MySubPrd\config
  • ..\MySubPrd\config\http
  • ..\MySubPrd\config\was
  • 和其他子目录
因此,我有一套完整的子应用程序(MySubPrd1、MySubPrd2、…、MySubPrdN)

在安装过程中,必须将子PRD1合并到MyAppRoot应用程序(始终已安装)中

为了构建我的安装程序,我首先获取myapprot和MySubPrd1、MySubPrd2等中的所有文件,MySubPrdN,以便创建与每个子管道关联的专用.wxs文件

set ROOT_BINARY=D:\Prj\MyAppRoot
heat dir %ROOT_BINARY% -cg MyRootApp -gg -scom -sreg -sfrag -srd -dr INSTALLLOCATION  -out %OUT_BUILD_WXS%\root.wxs -var env.ROOT_BINARY

set ROOT_PRD1=D:\Prj\MySubPrd 
heat dir %ROOT_PRD1% -cg MySubPrd1 -gg -scom -sreg -sfrag -srd -dr INSTALLLOCATION  -out %OUT_BUILD_WXS%\prd1.wxs -var env.ROOT_PRD1
其他子项也一样

我有一个用于构建安装程序的主WXS文件,我创建了一套功能:

<Feature Id='Complete' 
         Title='ROOT Application' 
         Description='The application.' 
         Display='expand' 
         Level='3' 
         ConfigurableDirectory='INSTALLLOCATION'>
  <ComponentRef Id="Shortcut" />

  <Feature Id="RootApp" 
           Title="Main Application RootApp" 
           Description="...." 
           Level="3">
    <ComponentGroupRef Id="MyRootApp" />
  </Feature>

  <Feature Id="MySubPrd1App" 
           Title="Option1" 
           Description="...." 
           Level="1000">
    <ComponentGroupRef Id="MySubPrd1" />
  </Feature>

  <Feature Id="MySubPrd2App" 
           Title="Option2" 
           Description="...." 
           Level="1000">
    <ComponentGroupRef Id="MySubPrd2" />
  </Feature>

</Feature>

一切正常,但在链接过程中,我遇到了许多错误:

错误LGHT0130:主键“dir022180FDDE4E69878C4D1206C73EED8D”重复

检查之后,我发现错误与目录有关。WiX似乎没有意识到这些特征必须合并到同一条路径中。某些目录包含完全相同的文件(例如,
。\MyAppRoot\config\ws
包含与..\MySubPrd1\config\ws完全相同的文件


如何解决此问题?

您必须使用XSL转换来清理输出。heat不理解与当前heat的其他独立执行重叠。

如果您有跨产品通用的文件,您可以将这些文件提取为片段,并在每个包中引用这些片段。

可能存在重复特