在Wix中使用DTF编写的有趣的自定义操作

在Wix中使用DTF编写的有趣的自定义操作,wix,dtf,Wix,Dtf,当我使用install提供产品密钥验证时,出现了一个具有挑战性的情况。我不得不使用。实际上,我们用C#编写了主要的验证逻辑,我必须创建一个混合项目。问题不仅止于这些,而且还在继续。因为我使用了VC++代码,所以它希望至少在客户机中安装VC++运行时可再发行。由于这些问题,我想放弃将安装迁移到Wix的计划 但是我知道Wix中有一个很好很酷的特性,可以在C#中集成任何类型的动作。我使用了它,可以在几个小时内集成密钥验证,到目前为止,它在我在6个月前实现的所有客户机上都运行良好 您对DTF有任何有趣的

当我使用install提供产品密钥验证时,出现了一个具有挑战性的情况。我不得不使用。实际上,我们用C#编写了主要的验证逻辑,我必须创建一个混合项目。问题不仅止于这些,而且还在继续。因为我使用了VC++代码,所以它希望至少在客户机中安装VC++运行时可再发行。由于这些问题,我想放弃将安装迁移到Wix的计划

但是我知道Wix中有一个很好很酷的特性,可以在C#中集成任何类型的动作。我使用了它,可以在几个小时内集成密钥验证,到目前为止,它在我在6个月前实现的所有客户机上都运行良好

您对DTF有任何有趣的时刻或良好的体验吗?

首先,C#/DTF自定义操作仍然是自定义操作(这里没有魔术:-),因此您也应该遵循所有CA指南来处理此类操作。它通过在高级精心设计的类后面抽象低级API,简化了大多数MSI任务。另外,请记住,只有在目标计算机安装了.NET(或作为先决条件安装)的情况下,才能使用托管代码CA。最后,随WiX工具集一起分发的dtf.chm文档有一些简单但自解释的示例


希望这能有所帮助。

我已经编写了几个.NET CA来支持我们基于WiX的安装:

  • 围绕HTTPAPI.DLL的托管包装器-支持创建用于部署WCF服务的IP/端口SSL绑定和HTTP Url ACL。我计划把这个变成一个Wix扩展。学习如何正确处理回滚等非常有趣

  • SSL选择器对话框,显示系统上的所有SSL证书,并允许您选择一个

  • SQL Server浏览器对话框-用于浏览网络中的SQL Server,然后浏览SQL Server中的数据库。可选地使用模拟。这用于制作连接字符串

  • 我正在编写一组CA,这些CA将使用Microsoft.Web.Administration程序集在IIS 7上进行Web应用程序的本机安装(无需安装IIS 6元数据库兼容性功能)

  • 在我的博客上搜索DTF,你会发现很多有用的内容。我喜欢DTF,但我仍然相信最好的解决方案是在第一时间尽可能避免CA。与之前的VBScript一样,C#非常吸引人,它往往会在不需要时吸引具有命令式思维的开发人员编写CAs。我相信这就是DTF没有发布这么长时间的原因


    在我的日常工作中,任何认为他们需要CA的人都需要我的批准。我指导开发人员基本的MSI哲学,如何使用DTF,如何附加调试器,并且我清楚地表明,如果它有任何问题,他们将处于困境。结果是我们的产品线中只有很少但写得很好的CAs。

    Yan,感谢您的回复。我完全同意你的观点。我关心的是如何处理自定义操作的非托管代码,DTF将其替换为托管代码,并提供了非常灵活的选项,如您所提到的,比如设计良好的类。当然,我们需要在机器上安装.NET,但是现在大多数windows操作系统默认都有.NET运行时,安装VCRuntime redistributable不成问题。我发布这个问题是为了与大家分享,如果他们在安装过程中遇到任何具有挑战性的操作,以及他们是否会使用DTF解决问题。+1提及WiX工具集Installer附带的DTF文档第4点:您知道Wix3.5将在不需要IIS 6元数据库的情况下正确支持IIS 7吗兼容性?