2

首先很抱歉,我不得不写这个冗长的问题,但是有必要写这些东西来更好地解释我的问题。

我们有一个安装程序来安装我们的应用程序。我想通过安装程序升级数据库。所以,我创建了最新结构数据库的快照,并放在应用程序的包中。我使用 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 许可证,然后在编译项目时,我得到一个激活弹出窗口,如下所示:

编译自定义操作项目时的 RedGate 激活弹出窗口

我已经应用了有效的许可证,然后我从 installshield 2014 编译了安装程序项目(它正在使用自定义操作项目)。

我的同步数据库代码按预期工作。所以,我没有发现同步代码有任何问题。

在这里,问题是:如果我将产品安装在具有 Redgate License 的机器上,那么产品将被安装并且数据库将成功同步。在客户端机器上,很明显它们没有 RedGate 许可证。安装程序在开始同步之前给出如上图所示的激活弹出窗口。

即使我在编译时已经提供了有效的许可证,我也无法在其他机器上同步数据库。

希望,有人对此有解决方案。

感谢期待。

4

1 回答 1

0

您是否在编译后重命名了程序集?引擎要求程序集文件名与嵌入式许可资源的名称相同。这是文档中相关页面的引用。

将使用 SQL 比较 SDK 的程序集部署到尚未安装和激活 SQL 比较 SDK 的远程站点时,可能会要求您激活 SDK,即使该程序集已正确构建和许可。

重命名程序集后会出现此问题。SQL 比较 SDK 程序集在构建后无法重命名,因为许可系统要求嵌入到程序集中的许可证资源与程序集文件名具有相同的名称。

您可以将程序集改回其原始名称,或更改 Visual Studio 项目中的设置,以便将输出程序集编译为不同的名称并部署使用所需名称构建的程序集。

于 2015-10-21T10:32:43.600 回答