RedGate SQL Comparison SDK API Проблема лицензирования
Прежде всего, извините за все, что я должен написать длинный вопрос, но необходимо написать эти вещи, чтобы лучше объяснить мою проблему.
У нас есть установщик для установки нашего приложения. Я хочу обновить базу данных через установщик. Итак, я создал снимок последней структуры базы данных и поместил в пакет приложения. Я использовал RedGate SQL Comparison SDK API, чтобы сравнить структуру двух баз данных, а затем синхронизировать базу данных клиентов с последним снимком (который я предоставил).
Я использую проект библиотеки классов пользовательских действий для написания методов, и эти методы будут называться самим установщиком.
Я приобрел лицензионный ключ RedGate, а также RedGate Tool установлен на одном компьютере. На той же машине у меня есть лицензия installshield, поэтому я пишу код настраиваемого действия только на этой машине.
Нам нужно добавить файл licenses.licx в проект, где мы используем RedGate SDK API. Я добавил этот файл, как указано в " http://documentation.red-gate.com/display/CSD11/Distributing+your+SDK+applications".
Я добавил этот файл, и компиляция прошла успешно, так как у меня на той же машине активирована лицензия. Итак, во-первых, чтобы встроить лицензию в проект, я деактивировал лицензию RedGate из установленного RedGate, а затем при компиляции проекта я получил всплывающее окно для активации, как показано ниже:
Я применил действующую лицензию, затем скомпилировал проект установщика из installshield 2014 (который использует проект настраиваемых действий).
Мой код синхронизации базы данных работает как положено. Итак, я не нашел никаких проблем в коде синхронизации.
Проблема в следующем: если я установлю продукт на машину с лицензией Redgate, продукт будет установлен и база данных будет успешно синхронизирована. На клиентских машинах очевидно, что у них не будет лицензии RedGate. Установщик выдает всплывающее окно активации, как показано на рисунке выше, перед началом синхронизации.
Несмотря на то, что я дал действующую лицензию во время компиляции, я не могу синхронизировать базы данных на других машинах.
Надеюсь, у кого-то есть решение для этого.
Спасибо в ожидании.
1 ответ
Вы переименовали сборку после компиляции? Движок требует, чтобы имя файла сборки совпадало с именем ресурса встроенной лицензии. Вот цитата с соответствующей страницы в документации.
При развертывании сборки с использованием SQL Comparison SDK на удаленном сайте, где SQL Comparison SDK еще не установлен и не активирован, вас могут попросить активировать SDK, даже если сборка была правильно собрана и лицензирована.
Проблема возникает после переименования сборки. Сборки SQL Comparison SDK нельзя переименовывать после сборки, поскольку система лицензирования требует, чтобы ресурс лицензии, встроенный в сборку, имел то же имя, что и имя файла сборки.
Вы можете либо изменить сборку обратно на ее первоначальное имя, либо изменить параметры в проекте Visual Studio, чтобы выходная сборка была скомпилирована под другим именем и развернуть сборку, созданную с нужным именем.