首先对不起,我必须写下这个冗长的问题,但是有必要写这些东西来更好地解释我的问题。
我们有安装程序来安装我们的应用程序。我想通过安装程序升级数据库。因此,我创建了最新结构数据库的快照,并放置在应用程序的包中。我使用RedGate SQL Comparison SDK API来比较两个数据库的结构,然后将客户数据库与最新的快照(我提供的)同步。
我正在使用自定义操作类库项目来编写方法,这些方法将被称为安装程序本身。
我购买了RedGate许可证密钥,并且RedGate Tool也安装在一台机器上。在同一台机器上,我有一个installshield许可证,所以我只在该机器上编写自定义操作代码。
我们需要在我们使用RedGate SDK API的项目中添加'licenses.licx'文件。我添加了“http://documentation.red-gate.com/display/CSD11/Distributing+your+SDK+applications”中提到的文件。
我已添加该文件并且编译成功,因为我在同一台计算机上激活了许可证。因此,首先要将许可证与已安装的RedGate中已停用RedGate许可证的项目一起嵌入,然后在编译项目时,我获得了一个激活弹出窗口,如下所示:
我已经应用了有效许可证,然后我从installshield 2014(使用自定义操作项目)编译了安装程序项目。
我的同步数据库代码正在按预期工作。所以,我没有在同步代码中发现任何问题。
这里的问题是:如果我将产品安装在具有Redgate许可证的机器上,那么将安装该产品并成功同步数据库。在客户端计算机上,很明显他们没有RedGate许可证。安装程序在开始同步之前提供如上图所示的激活弹出窗口。
即使我在编译时已经提供了有效的许可证,我也无法在其他计算机上同步dbs。
希望,有人有解决方案。
感谢您的期待。
答案 0 :(得分:0)
编译后是否重命名了程序集?引擎要求程序集文件名与嵌入许可证资源的名称相同。这是the relevant page in the documentation的引用。
使用SQL Comparison SDK将程序集部署到尚未安装和激活SQL Comparison SDK的远程站点时,可能会要求您激活SDK,即使已正确构建和许可程序集。
重命名程序集后出现问题。 SQL比较SDK程序集在构建后无法重命名,因为许可系统要求嵌入到程序集中的许可证资源与程序集文件名具有相同的名称。
您可以将程序集更改回其原始名称,或更改Visual Studio项目中的设置,以便将输出程序集编译为其他名称,并部署使用所需名称构建的程序集。