0
考虑我有一个名为MyLib.wixproj的WiX设置库项目,其中包含与不同安装程序共享的两个文件。该项目具有以下(简化)结构:WiX目录中的DirectoryRef
MyLib.wxs:
<Wix>
<Fragment>
<Feature Id="MySharedFeature" ...>
<ComponentGroupRef Id="MySharedCompGroup" />
</Feature>
<ComponentGroup Id="MySharedCompGroup" Directory="Directory_SharedFiles">
<Component Id="SharedCompA" Guid="*">
<File Id="SharedFileA Source="$(var.Source)fileA.txt" KeyPath="yes" />
</Component>
<Component Id="SharedCompB" Guid="*">
<File Id="SharedFileB Source="$(var.Source)fileB.txt" KeyPath="yes" />
</Component>
</ComponentGroup>
<Directory Id="Directory_SharedFiles" Name="SharedFiles" />
</Fragment>
</Wix>
我的一个安装(安装项目)的引用库是这样的:
Product.wxs:
<Wix>
<Product>
<FeatureRef Id="MySharedFeature" />
</Product>
</Wix>
Directories.wxs:
<Wix>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLDIR" Name="MyApp">
<!-- Here I want to add a reference to Directory_SharedFiles. -->
<Directory Id="OtherFilesNotShared" Name="MoreFiles">
</Directory>
<Directory>
</Directory>
</Directory>
</Fragment>
<Wix>
里面我想一个DirectoryRef添加到Directory_SharedFiles
的INSTALLDIR目录,在我的共享项目申报。我试着用DirectoryRef但这个标签不存在作为目录的孩子,这是我不清楚如何使用Directory Id="TARGETDIR"
共享项目中,像这样:
MyLib.wxs:
<!-- This code does not compile! -->
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="Directory_SharedFiles" Name="SharedFiles" />
</Directory>
</Fragment></Wix>
有没有办法做到这一点?
我将目录结构移动到MyLib.wxs中,如问题末尾所示,但它不起作用。你能否给我一个实际的代码片段来解决它? – Marlos
在你的代码中,目录Directory_SharedFiles在目标机器上的位置并不清楚。共享文件位于何处?如果在Program Files中,则需要将其嵌套在程序文件下。 – BryanJ