【问题标题】:Bind IIS local websites in dropdown list of wix installation?在wix安装的下拉列表中绑定IIS本地网站?
【发布时间】:2015-11-23 13:31:25
【问题描述】:

在使用 http://wixtoolset.org/ 为我的应用程序创建安装程序工作了很长时间之后,我使用的是 3.10v,最后我得到了工作的 .msi 安装程序文件。

但我希望 IIS 服务器中存在的网站列表在安装期间显示在下拉列表中,以便我可以从 IIS 服务器中选择现有网站并使用它来安装我的应用程序。

我在我的 UI 页面(.wxs 文件)中创建了一个 ComboBox 控件,并坚持编写自定义操作,任何帮助非常感谢!!

【问题讨论】:

    标签: c# asp.net iis wix wix3.9


    【解决方案1】:

    只需像这样添加一个自定义操作:

      <CustomAction Id="GetIISWebsitesID" BinaryKey="GetIISWebsites" DllEntry="CustomAction1" Execute="immediate" Return="check"></CustomAction>
      <Binary Id="GetIISWebsites" SourceFile="..\GetIISWebsites\bin\Debug\GetIISWebsites.CA.dll"/>
    

    在您的 wxs 文件中,自定义操作的代码如下:

    命名空间 GetIISWebsites { 公共类 CustomActions { [自定义动作] 公共静态 ActionResult CustomAction1(Session xiSession) { System.Diagnostics.Debugger.Launch(); Microsoft.Deployment.WindowsInstaller.View lView = xiSession.Database.OpenView("DELETE FROM ComboBox WHERE ComboBox.Property='xxxxxxxx'"); lView.Execute(); lView = xiSession.Database.OpenView("SELECT * FROM ComboBox"); lView.Execute(); 列出实例 = RetrieveIISWebsites(); 整数计数器 = 0; 整数索引 = 0; 布尔标志 = 假; 尝试 { foreach(实例中的字符串 str) { 记录 lRecord = xiSession.Database.CreateRecord(4); lRecord.SetString(1, "xxxxxxxx"); lRecord.SetInteger(2, Index); lRecord.SetString(3, str); lRecord.SetString(4, str); lView.Modify(ViewModifyMode.InsertTemporary, lRecord); 计数器=索引; ++索引; } } 捕捉(例外前) { ex.ToString(); xiSession.Log("异常详情:" + ex.Message); } lView.Close(); xiSession.Log("关闭视图"); lView.Close(); 返回 ActionResult.Success; } 私有静态列表 RetrieveIISWebsites() { 列表结果 = 新列表(); var 网站 = GetSites(); foreach(网站中的网站) { 结果.添加(站点。名称); } 返回结果; } 私有静态 SiteCollection GetSites() { var iisManager = new ServerManager(); SiteCollection 站点 = iisManager.Sites; 返回站点; } } }

    这里 xxxxxxxx 是绑定到组合框的属性。

    从 C:\Program Files (x86)\WiX Toolset v3.9\bin 文件夹中添加 Microsoft.Web.Administration.dll。

    如果回答正确或有任何疑问,请告诉我。

    【讨论】:

    • 如何使用 wix 将模块添加到退出的 Web 应用程序?我在 Modules 目录下有一个 WesbSite,我需要在 modules 目录下安装我的应用程序。
    猜你喜欢
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    • 2020-09-24
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多