2017-04-05 72 views
-1

我正在使用WIX构建安装程序。现在我想检测我的数据库是否通过其他会话连接,如果是的话,抛出一个错误。如何在WIX中检查SQL Server与数据库的连接

任何人都可以告诉我如何使用WIX来做到这一点? 我知道使用C#很容易,但不知道如何使用WIX来做到这一点,在此先感谢!

回答

0

我使用自定义操作解决了它。下面是一段代码,希望它能帮助别人。

[CustomAction] 
public static ActionResult DoCheck(Session ssion) 
{ 
    ... 
    if (CheckDBInUse(...)) 
    { 
     ... 
     session["DBINUSE"] = "Y"; // Set flag 
     ... 
    } 
} 

private static bool CheckDBInUse(...) 
{ 
    // SELECT host_process_id FROM SYS.DM_EXEC_SESSIONS WHERE DATABASE_ID = DB_ID('{0}')" 
    // do check 
} 

在WXS文件:

<control ...> 
<publish Event="SpawnDialgo" Value="DBInUseDlg">DBINUSE = "Y"</publish> 
</control> 

<Dialog Id="DBInuseDlg" ....> 
    <control>.... 
</Dialog> 
相关问题