2015-10-09 3 views
0

Мы используем поставщик DbDacFx для синхронизации нашей производственной машины. У нас есть проект базы данных ssdt в нашем решении, которое мы развертываем вместе с нашим сайтом. A.sqlproj имеет ссылки на master.dacpac и еще один проект dacpac проекта базы данных, скажем X.dacpac.MsDeploy с поставщиком DbDacFx и базой данных

Все dacpacs находятся в одном месте для развертывания.

Когда мы пытаемся развернуть A.dacpac мы получаем ошибки, как показано ниже:

Info: Развертывание пакета в базе данных: нарушенными. Ошибка: ссылка на внешние элементы из источника с именем «X.dacpac» не может быть решена, потому что такой источник не загружен. Ошибка: ссылка на внешние элементы из источника с именем «master.dacpac» не может быть решена, потому что такой источник не загружен. ..... выше ошибок, повторяющихся несколько раз ..... Произошла ошибка, когда запрос был обработан на удаленном компьютере. Ошибка: исключение было выбрано целью вызова. ---> System.Exception: Member 'ClassName' не найден. в System.Runtime.Serialization.SerializationInfo.GetElement (имя строки, тип & foundType) в System.Runtime.Serialization.SerializationInfo.GetString (имя строки) в System.Exception..ctor (информация SerializationInfo, контекст StreamingContext) --- конец внутренней трассировки стека исключений --- в System.RuntimeMethodHandle._SerializationInvoke (Object target, SignatureStruct & declaringTypeSig, SerializationInfo info, StreamingContext) в System.Runtime.Serialization.ObjectManager.CompleteISerializableObject (Object obj, SerializationInfo info, StreamingContext context) в System .Runtime.Serialization.ObjectManager.FixupSpecialObject (держатель ObjectHolder) в System.Runtime.Serialization.ObjectManager.DoFixups() в System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize (обработчик HeaderHandler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain , Метод IMethodCallMessageCallMessage) в System.Runtime. Serialization.Formatters.Binary.BinaryFormatter.Deserialize (Stream serializationStream, обработчик HeaderHandler, Boolean fCheck, Boolean isCrossAppDomain, метод IMethodCallMessageCallMessage) в System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize (Stream serializationStream, обработчик HeaderHandler, Boolean fCheck, IMethodCallMessage methodCallMessage) в Microsoft.Web.Deployment.Base64EncodingHelper.DeserializeHelper (BinaryFormatter formatter, Byte [] buffer) в Microsoft.Web.Deployment.Base64EncodingHelper.Deserialize (String str, Exception & handledException) в Microsoft.Web.Deployment.SerializationHelper.Deserialize (String str) в Microsoft.Web.Deployment.SqlDacPacProvider.ProcessExeOutput() в Microsoft.Web.Deployment.SqlDacPacProvider.RunExecutableAsync (String exeName, аргументы String, Int32 waitInterval, Int32 retryAttempts) в Microsoft.Web.Deployment.SqlDacPacProvider.Add (DeploymentObject source, Boolean whatIf) в Microsoft.We b.Deployment.DeploymentObject.Add (источник DeploymentObject, DeploymentSyncContext syncContext) в Microsoft.Web.Deployment.DeploymentSyncContext.HandleAdd (DeploymentObject destObject, DeploymentObject sourceObject) в Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildren (DeploymentObject dest, источник DeploymentObject) в Microsoft .Web.Deployment.DeploymentSyncContext.SyncChildrenOrder (DeploymentObject dest, источник DeploymentObject) в Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync (DeploymentObject destinationObject, DeploymentObject sourceObject) в Microsoft.Web.Deployment.DeploymentObject.SyncToInternal (DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable, Nullable 1 syncPassId) at Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentAsyncData asyncData, Nullable 1 passId) Ошибка: Member 'ClassName' не найден. в System.Runtime.Serialization.SerializationInfo.GetElement (имя строки, тип & foundType) в System.Runtime.Serialization.SerializationInfo.GetString (имя строки) в System.Exception..ctor (информация SerializationInfo, контекст StreamingContext). Количество ошибок: 1 .

Необходимо знать, как мы можем преодолеть проблемы. Спасибо Yatin.

+0

Кроме того, здесь приведены некоторые предупреждения Внимание: файл не указан для справки X.dacpac; развертывание может завершиться неудачей. Когда был создан пакет, исходный файл с надписью был расположен C: \ BUILDS \ 9 \ DEV \ ..... \ SHAREDASSEMBLIES \ X.DACPAC. Предупреждение: Файл справки master.dacpac не указан. развертывание может завершиться неудачей. Когда был создан пакет, исходный файл, на который ссылается, был расположен C: \ BUILDS \ 9 \ DEV \ ... \ SHAREDASSEMBLIES \ MASTER.DACPAC. Эти предупреждения выдаются MsDeploy при использовании поставщика пакетов и манифеста ... – Yshah00

ответ

0

Это все еще боль. Мы планируем скрипт команды sqlpackage.exe файла через провайдера runCommand и получаем автоматизацию! Закрытие вопроса. Спасибо

0

Имеются ли указанные ссылки dacpacs на машине, на которой выполняется развертывание?

Если они делают проще всего, это копирование dacpacs в ту же папку, что и dacpac, которую вы развертываете, поскольку тот же каталог будет проверен, если не будет оригинального пути, содержащего оригинальный dacpac.

+0

Да, все dacpac do существуют вместе в одной папке. Но событие тогда, когда во время развертывания, ссылка dacpac ищет dacpacs из общей папки, откуда они были построены !! – Yshah00

+0

Исходный путь хранится в dacpac, но локальная папка должна использоваться, если она не найдена, есть ли у вас странный рабочий каталог? –

+0

Здесь представлен весь процесс: 1> Мы создаем пакет развертывания, используя файл манифеста в качестве источника и поставщика пакетов в качестве адресата. Пакет содержит содержимое dacpac и веб-сайта. 2> Разверните пакет на серверы с помощью удаленного агента развертывания MS 3> мы можем развернуть dacpac, если мы используем файл SqlPackage.exe, и все пакеты находятся в одной папке. 4> В файле манифеста мы используем поставщик dbDacFx для добавления базы данных dacpac в базу данных. 5> ссылочные ссылки dacpacs добавляются с поставщиком filePath. – Yshah00