2010-02-26 59 views
2

当我使用安装来提供产品密钥验证时,发生了一个具有挑战性的情况。我不得不使用C++ unmanaged code to validate the key。实际上,我们有用C#编写的主要验证逻辑,我必须创建一个混合项目。问题并没有因此而停止,而是继续。由于我使用VC++代码,因此希望至少将VC++运行时可再发行组件安装在客户机中。因为这些问题,我想放弃将我们的安装迁移到Wix的计划。在Wix中使用DTF编写的有趣的自定义操作

但我知道有一个很好很酷的功能,DTF在Wix中可用来集成任何类型的行为在C#中。我使用它,可以在几个小时内集成密钥验证,直到现在它在我6个月之前实施的所有客户端机器上工作正常。

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

回答

1

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

  1. 托管包装周围HTTPAPI.DLL - 支持在部署WCF服务使用创建IP /端口绑定,SSL和HTTP URL访问控制列表。我打算把这个变成一个Wix Extension。学习如何正确处理回滚等非常有趣。

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

  3. SQL Server浏览器对话框 - 让您浏览您的网络以查找SQL Server,然后浏览SQL Server for Databases。可选使用模拟。这是为了制作连接字符串。

  4. 我正在编写一组使用Microsoft.Web.Administration程序集在IIS 7上进行Web应用程序本地安装(不需要安装IIS 6元数据库兼容性功能)的CA的过程。

+0

重点4:您是否知道Wix3.5将正确支持IIS 7而不需要IIS 6元数据库兼容性? – 2010-07-23 11:33:44

1

首先,C#/ DTF自定义操作仍然是自定义操作(这里没有魔法:-)),因此您应该遵循所有与这种类型相关的各种CA准则。它通过抽象高级精心设计的类中的低级API来简化大多数MSI任务。另外,请记住,只有在目标计算机安装了.NET(或将其作为先决条件安装)的情况下,才可以使用托管代码CA.最后,与WiX工具集一起发布的dtf.chm文档有一些简单但不言自明的例子。

希望这会有所帮助。

+0

严,感谢您的回复。我完全同意你的观点。我担心的是为自定义操作处理未托管的代码,DTF使用托管代码替换它,并提供了非常灵活的选项,就像您提到的设计良好的类一样。当然,我们需要将.NET安装在一台机器上,但现在大多数Windows操作系统默认都运行.NET,它不应该成为问题,而不是安装VCRuntime可再发行组件。如果他们在安装过程中遇到任何具有挑战性的行为,并且他们已经解决了使用DTF来解决问题,我发布了这个问题以分享人员时刻。 – sankar 2010-02-26 08:33:00

+0

+1提及WiX Toolset安装包含的DTF文档安装 – Jaans 2014-05-19 00:56:04

2

搜索我的博客http://blog.deploymentengineering.com为DTF,你会发现很多有用的内容。我喜欢DTF,但我仍然相信最好的解决方案是首先尽可能地避免CA。像VBScript之前的C#是如此诱人,以至于在不需要的时候,C#往往会吸引命令性的开发人员编写CA。我相信这就是DTF这么久没有发布的原因。

在我的日常工作中,任何相信他们需要CA的人都需要我的批准。我指导开发人员了解基本的MSI哲学,如何使用DTF,如何附加调试器,并且我明确表示如果它有任何问题,它们都处于挂钩状态。在我们的产品系列中,结果是很少但是写得很好的CA.

相关问题