我需要查詢使用wix代碼和C#創建二進制表。使用wix代碼和C#創建二進制表#
如:我能夠創造「AppSearch」表,如果不存在MSI使用下面的代碼
Database database = new Database(tempmsiPath, DatabaseOpenMode.Direct);
string query = "CREATE TABLE `AppSearch` (`Property` CHAR(255) NOT NULL, `Signature_`
CHAR(255) NOT NULL PRIMARY KEY `Property`)";
database.Execute(query);
但是當我嘗試
query = "CREATE TABLE `Binary` (`Name` CHAR(255) NOT NULL, `Data` Binary NOT NULL
PRIMARY KEY `Name`)";
database.Execute(query);
我得到的錯誤「BadQuerySyntaxException被捕獲「
SQL查詢語法無效或不受支持。數據庫:\ c:\ xx.msi。 SQL查詢中無效的類型說明符'Binary'CREATE TABLE Binary
(Name
CHAR(255)NOT NULL,Data
Binary NOT NULL PRIMARY KEY Name
)。
我需要這個的原因是我需要添加條目到二進制表,但有些時候msi沒有在這種情況下二進制表我需要創建表,否則我得到錯誤未知表二進制。
是否有任何其他方式來創建預定義的表'二進制'使用C#代碼和WIX或讓我知道我失蹤了什麼?
謝謝!
謝謝@Christopher您的解決方案適合我。我正在修改MSI的副本並使用CreateTransformSummaryInfo(,,,)創建MST。感謝您的跟進! – Rama 2013-05-03 06:37:42
順便說一句,爲了完整性,你的SQL語句失敗的原因是因爲Binary的正確關鍵字是OBJECT。但是,當你只需導入表格規範時,爲什麼要亂用SQL呢...... :) – 2013-05-03 12:22:27