2013-05-13 68 views
0

使用wix創建的MST沒有更新的摘要信息流值。使用WIX在MST中設置摘要信息

//The temp msi (copy of original msi) has updated summary info values 
Database d2 = new Database(tempmsiPath, DatabaseOpenMode.Direct); 

//origDatabase is a Database object of original msi; 
d2.GenerateTransform(origDatabase, mstPath); 

//this code is used to create the mst. 
d2.CreateTransformSummaryInfo(origDatabase, mstPath, 
       TransformErrors.None,TransformValidations.None); 

請讓我知道如何使用C#實現向MST寫入更新後的彙總值。

回答

0

如果我在ORCA中打開MSI,創建一個新的轉換,然後轉到摘要信息,所有字段都變灰。

如果我然後去(在ORCA中)變換|變換屬性我得到一個標題爲「變換SummaryInfo」的屏幕。它有一系列用於抑制錯誤和驗證的複選框。這映射到CreateTransformSummaryInfo中可用的參數。閱讀相同的方法DTF幫助主題說:

創建並填充的現有 轉換文件的摘要信息流,並與基地和 參考的產品代碼和的ProductVersion屬性罷了。

WindowsInstaller.Package程序集中還有一個TranformInfo類,但它只支持讀取轉換信息。羅布可能能夠告訴你更多,但似乎非常設計,不給不受限制的訪問。可能是因爲轉換必須與基礎MSI兼容。

也許如果我確切知道你爲什麼要更新,我可以給出一個更好的答案。

+0

感謝您的回覆。我需要爲任何msi創建具有標準的mst模板,從而更新摘要信息屬性以遵循標準。摘要信息值更新不適用於使用C#和WIX,但在使用第三方mst創建工具(如Installshield)時工作正常。所以我認爲它有可能用mst更新彙總信息值,但我無法用wix + C#來完成。 – Rama 2013-05-13 13:34:52

+0

有趣的觀察。如果我使用InstallShield,它聲稱允許我更改SIS內容。但是當我使用ORCA將MST應用於MSI時,我看不到更改。如果我然後在InstallShield中應用編輯MST,它會顯示它。這超出了我的知識範圍。也許MichaelU或RobM可以和他們的想法一致。我的直覺是,這是忙碌的工作,並沒有真正支持Windows安裝程序。 – 2013-05-13 14:03:46