首先很抱歉,我不得不写这个冗长的问题,但是有必要写这些东西来更好地解释我的问题。
我们有一个安装程序来安装我们的应用程序。我想通过安装程序升级数据库。所以,我创建了最新结构数据库的快照,并放在应用程序的包中。我使用 RedGate SQL 比较 SDK API 来比较两个数据库的结构,然后将客户数据库与最新的快照(我提供的)同步。
我正在使用自定义操作类库项目来编写方法,这些方法将被称为安装程序本身。
我已经购买了 RedGate 许可证密钥,并且 RedGate 工具也安装在一台机器上。在同一台机器上,我有一个 installshield 许可证,所以我只在该机器上编写自定义操作代码。
我们需要在使用 RedGate SDK API 的项目中添加“licenses.licx”文件。我已经添加了“ http://documentation.red-gate.com/display/CSD11/Distributing+your+SDK+applications ”中提到的那个文件。
我已经添加了该文件并且编译成功,因为我在同一台机器上激活了许可证。因此,首先要在项目中嵌入许可证,我已经从已安装的 RedGate 中停用了 RedGate 许可证,然后在编译项目时,我得到一个激活弹出窗口,如下所示:
我已经应用了有效的许可证,然后我从 installshield 2014 编译了安装程序项目(它正在使用自定义操作项目)。
我的同步数据库代码按预期工作。所以,我没有发现同步代码有任何问题。
在这里,问题是:如果我将产品安装在具有 Redgate License 的机器上,那么产品将被安装并且数据库将成功同步。在客户端机器上,很明显它们没有 RedGate 许可证。安装程序在开始同步之前给出如上图所示的激活弹出窗口。
即使我在编译时已经提供了有效的许可证,我也无法在其他机器上同步数据库。
希望,有人对此有解决方案。
感谢期待。