我怎样才能保持从维克斯安装程序库文件引用完整性(How can I maintain file re

2019-11-02 22:28发布

我现在用的是维克斯工具集3.8的Visual Studio插件。 我创建了一个WIX安装库后者封装将通过各种服务部署项目消耗了一些常用的组件。 这个库包括了需要被打包到每个部署的几个解决方案文件的引用。

这些依赖于我的WiX的文库片段用在几个不同的方式。 例如:

<Binary Id="InstallationScript" SourceFile=".\Dependency1.vbs" />
<CustomAction Id="DependencyAction"
              BinaryKey="InstallationScript"
              VBScriptCall=""
              Execute="deferred"
              Return="check"
              HideTarget="no"/>
<Component Id="DLL_Component" Guid="4745D9E2-0EBA-EE57-D8DB-677ADA9E9EC8">
    <File Id="DLL1" Name="Dependency1.DLL" Source=".\Dependency1.dll" Vital="yes" KeyPath="yes" DiskId="1"/>
</Component>

我是否将文件添加到该项目为纽带,或将它们复制到项目目录,我是否引用它们在项目目录或使用相对路径到其原始位置的维克斯设置库构建的罚款。 问题是当我有我的服务部署在我的维克斯安装项目的片段。

<Custom Action="DependencyAction"  Before="InstallFinalize">
    NOT INSTALLED AND NOT UPGRADINGPRODUCTCODE
</Custom>

安装项目是不是在文件夹结构相同的相对深度,从而从维克斯库引用时它的相对路径没有指向同一个地方。 当我引用从维克斯图书馆中,我得到这样的错误动作或功能, The system cannot fine the file '.\Dependency1.dll'正在读取XML正是因为它是从安装项目的位置,而不是从图书馆计划中引用位置,所以相对目录是错误的。 我可以在维克斯库中的相对路径设置为它应该是什么消耗它的安装项目,或者我可以解决文件复制到安装项目目录为好,但当然,这完全违背了使用的目的常见WIX库。 有迹象表明,需要消耗这个库等服务部署项目。

所以现在的问题是,我该如何参考解决方案文件的维克斯库中,可以通过消耗它的安装项目中使用的方法,即安装项目所在的目录,不管?

Answer 1:

创建一个包含在你的创作中引用的文件的二进制.wixlib。 (这是在命令行-bf,在.wixproj BindFiles财产,“绑定文件到库文件”中还愿复选框。)



文章来源: How can I maintain file reference integrity from a WIX Setup Library