2011-05-31 39 views
0

我仍在使用我的Wix安裝程序,其中包括替換一些MySql命令。您是否有使用Wix執行MySql的其他示例?

具體而言,我希望安裝程序運行創建用戶的腳本,然後使用該用戶,我希望安裝程序運行創建數據庫並創建表的腳本。 (看起來安裝程序應該能夠做到這一點。)

我之前發佈的關於該用戶的信息,目前還沒有弄清楚。

因此,暫時忽略一下,我們假設我的用戶存在。此用戶恰巧不是有密碼。如果沒有安裝,我通常做的命令來運行我的腳本創建數據庫和表是:

的mysql --user = MYNAME < thisismyscript.sql

這工作得很好 - 所以我知道我的腳本工作。

我在Wix中看到了兩個問題,我希望有人可以解釋或發佈其他示例(我通過查看其他示例學得最好)。

1)似乎是缺少密碼。

在.wxs文件,我有:

<util:User Id='SQLUser' Name='[SQLUSER]' /> 

<Component Id='SqlComponent' Guid='7B524167-D8CF-465E-AEE8-6B70CF712A3A' KeyPath='yes'> 
<sql:SqlDatabase Id='SqlDatabase' Database='adatabase' User='SQLUser' Server='[SQLSERVER]' 
        CreateOnInstall='yes' DropOnUninstall='yes' ContinueOnError='yes'> 
<sql:SqlScript Id='mynewdb' BinaryKey='mynewdb' ExecuteOnInstall='yes' /> 
</sql:SqlDatabase> 
</Component> 

<Binary Id='mynewdb' SourceFile='thisismyscript.sql' /> 

<Property Id='SQLUSER'>myname</Property> 
<Property Id='SQLSERVER'>localhost</Property> 

(這是所有內嵌在.wxs文件正確的地方,該文件編譯罰款...它只是當我運行.msi ,我的數據庫尚未創建。)

我能夠將密碼屬性留空的唯一方法是添加該管理標籤。我不知道這裏要做什麼。

  1. 第二個問題是,在SQLComponent中,我不得不記下一個數據庫名稱,但當然這個數據庫實際上並不存在。這是一個問題嗎? (我也嘗試手動創建數據庫,以便當.msi運行時它已經在那裏...但是然後沒有其他發生)

我也運行msiexec與日誌記錄,它似乎是我的SQL腳本執行......沒有任何錯誤,我可以在日誌中看到。

幫助?這看起來好像安裝人員應該能夠做的事情......而且我只是在做錯事...

在此先感謝!

-Adeena

+0

MSI不允許帶有「」值的屬性。您可能需要考慮刪除「SQLPASSWORD」屬性的聲明;如果沒有定義,它的值就是''「'。 – 2011-05-31 13:05:58

+0

因此,我只是按照建議刪除了SQLPASSWORD(並修改了上面的wix代碼以向您展示它現在的樣子)。蠟燭和光線運行良好,但是當我去安裝時,它仍然沒有創建我的數據庫... :( – adeena 2011-06-01 00:21:14

+0

我沒有想法然後。它可能與權限問題有關嗎?我的意思是腳本啓動但未能創建一個數據庫因爲_permission denied_。MSI詳細日誌將具有它開始運行SQL腳本的參數;也許它會揭示這個問題。 – 2011-06-01 15:05:44

回答

1

WiX和MSI都沒有原生支持MySQL。 InstallShield支持MySQL。

+0

所以如果不是MySQL,這裏提到什麼SQL的味道:http://www.tramontana.co.hu/wix/lesson7.php – adeena 2011-06-03 02:18:30

+0

MSSQL - Microsoft SQL Server。 (請記住,WiX是OSS,但它仍然來自微軟,因此這將是他們的第一個也許是唯一的優先事項。) – 2011-06-03 02:26:42

+0

您可能想查看此第三方擴展http://code.dblock.org/Showpost.aspx?id= 100 – 2011-06-03 02:29:52

相關問題