当我使用安装来提供产品密钥验证时,发生了一个具有挑战性的情况。我不得不使用C++ unmanaged code to validate the key。实际上我们有用C#编写的主要验证逻辑,我不得不创建一个混合项目。问题并没有停止,只有这些,它继续。由于我使用的是VC ++代码,因此预计至少VC ++运行时可再发行组件将安装在客户机中。由于存在这些问题,我想放弃将安装迁移到Wix的计划。
但我发现有一个很好的非常酷的功能,Wix中有DTF可用于在C#中集成任何类型的操作。我使用它并且可以在几个小时内集成密钥验证,直到现在它在我在6个月之前实现的所有客户机都运行良好。
您对DTF有任何有趣的时刻或愉快的经历吗?
答案 0 :(得分:2)
在我的博客http://blog.deploymentengineering.com搜索DTF,您会发现很多有用的内容。我喜欢DTF,但我仍然认为最好的解决方案是尽可能避免使用CA. C#,就像它之前的VBScript一样,引人入胜,以至于在不需要的时候,它往往会让开发人员在编写CA时遇到困难。我相信这就是DTF长期没有发布的原因。
在我的日常工作中,任何认为需要CA的人都需要我的批准。我指导开发人员使用基本的MSI philosphy,如何使用DTF,如何连接调试器,并且如果它有任何问题我明确说明它们是挂钩的。结果很少,但在我们的产品线中写得很好。
答案 1 :(得分:1)
首先,C#/ DTF自定义操作仍然是自定义操作(这里没有魔法:-)),因此您应该遵循使用此类的所有CA指南。它通过在高级精心设计的类后面抽象低级API来简化大多数MSI任务。此外,请记住,只有在目标计算机安装了.NET(或将其作为先决条件安装)的情况下才能使用托管代码CA.最后,与WiX工具集一起分发的dtf.chm文档有一些简单但不言自明的例子。
希望这有帮助。
答案 2 :(得分:1)
我已经编写了几个.NET CA来支持我们基于WiX的安装:
HTTPAPI.DLL周围的托管包装 - 支持创建IP /端口SSL绑定和HTTP Url ACL,以用于部署WCF服务。我打算把这个变成Wix扩展。学习如何正确处理回滚等非常有趣。
SSL Picker对话框,显示系统上的所有SSL证书,并允许您选择一个。
SQL Server浏览器对话框 - 允许您浏览网络中的SQL Server,然后浏览SQL Server for Databases。可选择使用模拟。这是用于制作连接字符串。
我正在编写一组CA,这些CA将使用Microsoft.Web.Administration组件在IIS 7上执行Web应用程序的本机安装(无需安装IIS 6 Metabase Compatibilty功能)。