2

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

但我开始知道,Wix 中提供了一个不错且非常酷的DTF功能,可以在 C# 中集成任何类型的操作。我使用它并且可以在几个小时内集成密钥验证,直到现在它在我在 6 个月之前实施的所有客户端机器上都可以正常工作。

你对 DTF 有什么有趣的时刻或美好的经历吗?

4

3 回答 3

2

在我的博客http://blog.deploymentengineering.com上搜索 DTF,您会发现很多有用的内容。我喜欢 DTF,但我仍然相信最好的解决方案是尽可能一开始就避免使用 CA。C# 和之前的 VBScript 一样,非常具有吸引力,以至于它往往会在不需要时吸引具有命令式思维的开发人员编写 CA。我相信这就是 DTF 没有发布这么久的原因。

在我的日常工作中,任何认为他们需要 CA 的人都需要我的批准。我指导开发人员了解基本的 MSI 理念、如何使用 DTF、如何附加调试器,并且我明确表示如果遇到任何问题,他们就会陷入困境。结果是我们的产品线中很少但编写良好的 CA。

于 2010-02-28T01:58:59.980 回答
1

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

希望这可以帮助。

于 2010-02-26T07:17:36.020 回答
1

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

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

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

  3. SQL Server 浏览器对话框 - 让您浏览网络以查找 SQL Server,然后浏览 SQL Server 以查找数据库。可选择使用模拟。这是用于制作连接字符串。

  4. 我正在编写一组 CA,它们将使用 Microsoft.Web.Administration 程序集在 IIS 7 上进行 Web 应用程序的本机安装(无需安装 IIS 6 Metabase Compatibilty 功能)。

于 2010-02-26T19:03:13.203 回答