首先,很抱歉,我不得不写这个冗长的问题,但为了更好地解释我的问题,有必要写这些东西。
我们有一个安装程序来安装我们的应用程序。我想通过安装程序升级数据库。因此,我创建了最新结构数据库的快照,并将其放在应用程序的包中。我使用了RedGate来比较两个数据库的结构,然后将客户数据库与最新的快照(我提供的快照)同步。
我正在使用自定义操作类库项目来编写方法,这些方法将被称为安装程序本身。
我购买了RedGate许可证密钥,RedGate工具也安装在一台机器上。在同一台机器上,我有安装屏蔽许可证,所以我只在那台机器上编写自定义操作代码。
我们需要将'licenses.licx‘文件添加到我们使用RedGate SDK的项目中。我添加了'http://documentation.red-gate.com/display/CSD11/Distributing+your+SDK+applications‘中提到的文件。
我添加了该文件,编译成功了,因为我在同一台机器上激活了许可证。因此,首先要将许可证嵌入到我已从已安装的RedGate中禁用RedGate许可证的项目中,然后在编译该项目时获得一个弹出以供激活,如下所示:

我已经申请了有效的许可,然后我从installshield 2014编译了安装程序项目(它使用的是自定义操作项目)。
我的数据库同步代码正在按预期工作。所以,我在同步代码中没有发现任何问题。
这里的问题是:如果我将产品安装在拥有Redgate许可证的机器上,那么该产品将被安装并成功地同步数据库。在客户端机器上,很明显,它们没有RedGate许可证。安装程序在开始同步之前提供激活弹出,如上面的映像所示。
即使在编译时我已经给出了有效的许可证,但我无法在其他机器上同步dbs。
希望有人有办法解决这个问题。
感谢你的期待。
发布于 2015-10-21 10:32:43
编译后重命名程序集了吗?引擎要求程序集文件名与嵌入许可资源的名称相同。以下是文档中的相关页面的引文。
当使用SQL比较SDK将程序集部署到尚未安装和激活SQL比较SDK的远程站点时,可能会要求您激活SDK,即使程序集已正确构建并获得许可。 此问题发生在重命名程序集之后。SQL比较SDK程序集生成后不能重命名,因为许可系统要求嵌入到程序集中的许可资源具有与程序集文件名相同的名称。 可以将程序集更改回其原始名称,也可以更改Visual项目中的设置,以便将输出程序集编译为不同的名称,并部署使用所需名称生成的程序集。
https://stackoverflow.com/questions/31748527
复制相似问题