Я хочу, чтобы в диалоговом окне установщика wix отображалось ход выполнения настраиваемого действия.
Это код настраиваемого действия, который выполняется, и я хочу записать каждую строку из:
dacServiceInstance.Message += (s, e) => MessageList += Environment.NewLine + e.Message.Message;
И отобразить элемент в текстовом поле при его выполнении:
public static bool ProcessDacPac(string connectionString, string databaseName, string dacpacName, Session session)
{
var success = true;
//var MessageList = new List<string>
//{
// "*** Start of processing for " + databaseName
//};
var MessageList = "*** Start of processing for " + databaseName;
var dacOptions = new DacDeployOptions { BlockOnPossibleDataLoss = false };
var dacServiceInstance = new DacServices(connectionString);
//dacServiceInstance.ProgressChanged += (s, e) => MessageList.Add(e.Message);
//dacServiceInstance.Message += (s, e) => MessageList.Add(e.Message.Message);
dacServiceInstance.ProgressChanged += (s, e) => MessageList += Environment.NewLine + e.Message;
dacServiceInstance.Message += (s, e) => MessageList += Environment.NewLine + e.Message.Message;
try
{
using (var dacpac = DacPackage.Load(dacpacName))
{
dacServiceInstance.Deploy(dacpac, databaseName,
upgradeExisting: false,
options: dacOptions);
}
}
catch (Exception ex)
{
success = false;
//MessageList.Add(ex.Message);
MessageList += Environment.NewLine + ex.Message;
}
session["MESSAGE_LIST"] = MessageList;
//WinForms.MessageBox.Show(MessageList);
//session.SetObjectAsJson("MessageList", MessageList);
return success;
}
Это мой элемент управления WiX:
<Control Id="Progress" Type="Edit" X="45" Y="127" Width="160" Height="80" Property="MESSAGE_LIST" Text="[MESSAGE_LIST]">
</Control>
Я ожидаю, что результат MESSAGE_LIST
будетотображается в текстовом поле по мере выполнения.