簡體   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