2015-07-31 11 views
2

Прежде всего Извините, что мне нужно написать длинный вопрос, но нужно написать эти вещи, чтобы лучше объяснить мою проблему.RedGate SQL Comparison SDK API Licensing Issue

У нас есть установщик для установки нашего приложения. Я хочу обновить базу данных с помощью установщика. Итак, я создал моментальный снимок последней базы данных структуры и помещен в пакет приложения. Я использовал API SDK RedGate SQL Comparison для сравнения структуры двух баз данных, а затем синхронизировал базу данных клиента с последним снимком (который я предоставил).

Я использую проект библиотеки классов пользовательских действий для написания методов, и эти методы будут называться самим установщиком.

Я приобрел лицензионный ключ RedGate, а также RedGate Tool установлен на одной машине. На той же машине у меня есть лицензия на установку, поэтому я пишу только код пользовательского действия только на этой машине.

Нам нужно добавить файл "license.licx" в проект, где мы используем API SDK RedGate. Я добавил этот файл, как указано в 'http://documentation.red-gate.com/display/CSD11/Distributing+your+SDK+applications'.

Я добавил, что файл и компиляция выполнены успешно, так как у меня есть лицензия, активированная на той же машине. Таким образом, в первую очередь встраивать лицензию с проектом я отключенной лицензию RedGate от установленной RedGate, а затем При составлении проекта я получил всплывающее окно для активации, как показано ниже:

RedGate Activation Popup while compiling the custom action project

Я применил действительная лицензия, то я скомпилировал проект установщика с installshield 2014 (который использует проект пользовательских действий).

Мой код синхронизации базы данных работает должным образом. Таким образом, я не обнаружил никаких проблем в коде синхронизации.

В данном случае проблема заключается в следующем: Если я установлю продукт на машине с лицензией Redgate, то продукт будет установлен, и база данных будет успешно синхронизирована. На клиентских компьютерах очевидно, что у них не будет лицензии RedGate. Установщик дает всплывающее окно активации, как показано на рисунке выше, перед началом синхронизации.

Несмотря на то, что я дал действительную лицензию на момент компиляции, я не могу синхронизировать dbs на других машинах.

Надеюсь, у кого-то есть решение для этого.

Спасибо в ожидании.

ответ

0

Вы переименовали сборку после компиляции? Для двигателя требуется, чтобы имя файла сборки было таким же, как имя встроенного ресурса лицензии. Вот цитата из the relevant page in the documentation.

При развертывании сборки с использованием SQL сравнения SDK для удаленного места, где еще не установлен и активированного SQL Сравнение SDK, вы можете попросить, чтобы активировать SDK, даже если сборка была построена и лицензирована правильно.

Проблема возникает после переименования сборки. SQL Comparison SDK сборки не могут быть переименованы после их создания, поскольку система лицензирования требует, чтобы ресурс лицензии, встроенный в сборку, имел то же имя, что и имя файла сборки.

Вы можете либо сменить сборку на свое первоначальное имя, либо изменить настройки в проекте Visual Studio, чтобы сборка результатов компилировалась как другое имя и развернула сборку, построенную с нужным именем.

+0

Ответы на ссылки очень разочарованы здесь, потому что ссылки могут стать мертвыми в будущем. Я предлагаю вам отредактировать свой ответ с помощью цитат из источников, которые вы цитируете. –