繁体   English   中英

WiX Installer-如何从与.msi相同位置的文件夹中读取sql文件内容

[英]WiX Installer - how to read sql file content from a folder which reside at same location as .msi

我想调用自定义操作以针对给定的数据库执行.sql文件集。 如果我可以将sql文件所在的文件夹的路径硬编码,则可以使用自定义操作代码(在c#中)执行此操作。

我想将此sql脚本文件夹放在存在.msi的相同位置。 在安装期间,如何通过自定义操作访问/查找此文件夹路径?

我正在使用Wix 3.6。 我正在使用点网引导程序创建我的setup.exe。

WiX工具SqlScript元素SqlScript您的要求。 它实际上将脚本作为Binary流存储在MSI中,而不是依赖于与MSI相关的文件。 这是一项重要的设计决策,因为在许多情况下,您的MSI将执行但无法访问原始源媒体,因此无法找到脚本。 例如,可以从缓存的MSI包中启动修复操作。 如果您的自定义操作是修复,则将需要原始媒体来获取脚本。 这不是很理想。

如果您真的想走这条路,那么您将需要使用SourceDir目录来获取MSI的“源位置”。 如上所述,源媒体可能并不总是可用,并且在这些情况下SourceDir将为空白。 要强制设置SourceDir ,您需要添加ResolveFiles操作。 安排ResolveFiles时要小心,因为这将需要原始媒体。 如果找不到,将提示用户再次插入。

ResolveFiles排序不正确的最坏情况是,当用户尝试卸载其产品时,系统提示您。 用户正在尝试获取您的计算机应用程序,除非找到原始安装方式,否则将阻止用户使用它们。 真正打乱用户的好方法。 :)

如果您确实有兴趣,我强烈建议您查看SqlScript元素或源代码。 它位于src \\ ca \\ serverca的WiX工具集中(在下面的名称中查找带有“ sql”的文件)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM