倍数特征之间的可重用组件考虑以下情形:维克斯 -
- 项目CommonLib
- CommonLib.dll
- 项目AExe
- CommonLib.dll
- AExe。 exe
- 项目BExe
- CommonLib.dll
- BExe.exe
项目AExe安装在%ProgramFiles%\AExe\bin
和BExe %ProgramFiles%\BExe\bin
但两者都使用相同的.MSI
部署如何将CommonLib.dll声明为通用组件,然后在AExe Directory[Ref]
和BExe中重用它0?
我想什么做的事:
<Fragment>
<Component Id="C.CommonLib.dll" Guid="*">
<File Id="Fi.CommonLib.dll" Source="<path>CommonLib.dll" KeyPath="yes"/>
</Component>
<Directory Id="ProgramFilesFolder">
<Directory Id="Di.AExe" Name="AExe">
<Directory Id="Di.AExeBin" Name="bin">
<ComponentRef Id="C.CommonLib.dll"/>
</Directory>
</Directory>
<Directory Id="Di.BExe" Name="BExe">
<Directory Id="Di.BExeBin" Name="bin">
<ComponentRef Id="C.CommonLib.dll"/>
</Directory>
</Directory>
</Directory>
</Fragment>
但是,这并不工作,因为Directory
不允许Ref
的孩子。你会如何编码?
PS:我给的例子有2个项目,但在现实中有共享多个共同的lib更多的项目,这就是为什么我问的是:)
看起来是http://stackoverflow.com/questions/4941602/features-installed-to-different-locations-but-referencing-the-same -components – 2012-02-28 19:13:46