安装程序 – WIX,Dot Net管理的自定义Action,动态填充组合框与SQL Server实例MSI
发布时间:2020-05-23 09:59:30 所属栏目:MsSql 来源:互联网
导读:在WIX中,需要一个点网络管理的自定义代码,以动态填充组合框中该网络中sql服务器实例的值. 我试图google,但没有任何工作 任何帮助是极大的赞赏. [CustomAction] public static ActionResult FillServerInstances(Session xiSession) { xiSession.Lo
|
在WIX中,需要一个点网络管理的自定义代码,以动态填充组合框中该网络中sql服务器实例的值. 我试图google,但没有任何工作 任何帮助是极大的赞赏. 解决方法[CustomAction]
public static ActionResult FillServerInstances(Session xiSession)
{
xiSession.Log("Begin CustomAction");
xiSession.Log("Opening view");
View lView = xiSession.Database.OpenView("DELETE FROM ComboBox WHERE ComboBox.Property='DBSRVR'");
lView.Execute();
lView = xiSession.Database.OpenView("SELECT * FROM ComboBox");
lView.Execute();
int Index = 1;
bool flag = false;
try
{
foreach (DataRow dr in Microsoft.SqlServer.Management.Smo.SmoApplication.EnumAvailableSqlServers(false).Rows)
{
String InstanceName = dr["Name"].ToString();
if (InstanceName.Equals(xiSession["ComputerName"] + @"" + xiSession["SQLINSTANCENAME"],StringComparison.InvariantCultureIgnoreCase))
{ flag = true; }
Record lRecord = xiSession.Database.CreateRecord(4);
xiSession.Log("Setting record details");
lRecord.SetString(1,"DBSRVR");
lRecord.SetInteger(2,Index);
lRecord.SetString(3,InstanceName);
lRecord.SetString(4,InstanceName);
xiSession.Log("Adding record");
lView.Modify(ViewModifyMode.InsertTemporary,lRecord);
++Index;
}
}
catch (Exception ex)
{
logException(xiSession,ex);
}
if (flag)
{
xiSession["DBSRVR"] = xiSession["ComputerName"].ToString() + @"" + xiSession["SQLINSTANCENAME"].ToString();
}
lView.Close();
xiSession.Log("Closing view");
lView.Close();
return ActionResult.Success;
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
