[英]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.