【发布时间】:2015-10-09 18:42:16
【问题描述】:
我们正在使用 DbDacFx 提供程序来同步我们的生产机器。 我们的解决方案中有 ssdt 数据库项目,与我们的网站一起部署。 A.sqlproj 引用了 master.dacpac 和另一个数据库项目的 dacpac,比如 X.dacpac。
所有 dacpac 都在同一个位置进行部署。
当我们尝试部署 A.dacpac 时,我们得到如下错误:
信息:将包部署到数据库:错误。错误:无法解析来自名为“X.dacpac”的源对外部元素的引用,因为没有加载此类源。错误:无法解析来自名为“master.dacpac”的源对外部元素的引用,因为没有加载此类源。 ......上述错误重复多次......在远程计算机上处理请求时发生错误。错误:调用的目标已引发异常。 ---> System.Exception:找不到成员“ClassName”。在 System.Runtime.Serialization.SerializationInfo.GetElement(String name, Type&foundType) 在 System.Runtime.Serialization.SerializationInfo.GetString(String name) 在 System.Exception..ctor(SerializationInfo info, StreamingContext context) --- 结束内部异常堆栈跟踪---在 System.Runtime.Serialization.ObjectManager.CompleteISerializableObject(Object obj, SerializationInfo info, StreamingContext context) 在 System.Runtime._SerializationInvoke(Object target, SignatureStruct& declaringTypeSig, SerializationInfo info, StreamingContext context) 在 System.Runtime .Serialization.ObjectManager.FixupSpecialObject(ObjectHolder holder) at System.Runtime.Serialization.ObjectManager.DoFixups() at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage) 在 System.Runtime.Serialization.Formatters.Binary.BinaryF ormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, 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 arguments, Int32 waitInterval, Int32 retryAttempts) 在 Microsoft.Web.Deployment.SqlDacPacProvider.Add(DeploymentObject source, Boolean whatIf) 在 Microsoft .Web.Deployment.DeploymentObject.Add(DeploymentObject ct source, DeploymentSyncContext syncContext) 在 Microsoft.Web.Deployment.DeploymentSyncContext.HandleAdd(DeploymentObject destObject, DeploymentObject sourceObject) 在 Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildren(DeploymentObject dest, DeploymentObject source) 在 Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder (DeploymentObject dest, DeploymentObject source) at Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject, DeploymentObject sourceObject) at Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable, Nullable@987654321 @1 passId) 错误:找不到成员“ClassName”。在 System.Runtime.Serialization.SerializationInfo.GetElement(String name, Type&foundType) 在 System.Runtime.Serialization.SerializationInfo.GetString(String name) 在 System.Exception..ctor(SerializationInfo info, StreamingContext context) 错误计数:1。
需要知道如何克服这些问题。 谢谢 亚丁。
【问题讨论】:
-
此外,这里有一些警告警告:没有提供文件供参考 X.dacpac;部署可能会失败。创建包时,原始引用文件位于 C:\BUILDS\9\DEV\.....\SHAREDASSEMBLIES\X.DACPAC。警告:没有为参考 master.dacpac 提供文件;部署可能会失败。创建包时,原始引用文件位于 C:\BUILDS\9\DEV\...\SHAREDASSEMBLIES\MASTER.DACPAC。这些警告是由 MsDeploy 在使用包提供程序和清单时发出的...
标签: database reference msdeploy dacpac