注册插件(isolate):ssembly file name (CRM.XXXXXXXXXX.Plugins.dll) is in invalid format. Only file name is

来源:互联网 发布:比利时鲁汶大学知乎 编辑:程序博客网 时间:2024/06/06 11:42

当注册plugin时(注册到disk),在load编译好的assembly之后在相应的实体后面出现-isolate。
接着注册step的时候发现发现注册不成功。
报错如下:

Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: Assembly file name (CRM.XXXXXXXXXX.Plugins.dll) is in invalid format. Only file name is allowed.Detail: <OrganizationServiceFault xmlns="http://schemas.microsoft.com/xrm/2011/Contracts" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">  <ErrorCode>-2147204719</ErrorCode>  <ErrorDetails xmlns:a="http://schemas.datacontract.org/2004/07/System.Collections.Generic" />  <Message>Assembly file name (PetroCRM.CRM.Equipment.Plugins.dll) is in invalid format. Only file name is allowed.</Message>  <Timestamp>2015-12-04T01:20:58.5470066Z</Timestamp>  <InnerFault>    <ErrorCode>-2147204719</ErrorCode>    <ErrorDetails xmlns:a="http://schemas.datacontract.org/2004/07/System.Collections.Generic" />    <Message>Assembly file name (PetroCRM.CRM.Equipment.Plugins.dll) is in invalid format. Only file name is allowed.</Message>    <Timestamp>2015-12-04T01:20:58.5480091Z</Timestamp>    <InnerFault i:nil="true" />    <TraceText i:nil="true" />  </InnerFault>  <TraceText i:nil="true" /></OrganizationServiceFault>Server stack trace:    在 System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)   在 System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)   在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)   在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)Exception rethrown at [0]:    在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)   在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)   在 Microsoft.Xrm.Sdk.IOrganizationService.Create(Entity entity)   在 Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy.CreateCore(Entity entity)   在 Microsoft.Crm.Tools.Libraries.RegistrationHelper.RegisterStep(CrmOrganization org, CrmPluginStep step)   在 Microsoft.Crm.Tools.PluginRegistration.StepRegistrationViewModel.btnRegister_Click(Object sender, EventArgs e)

解决方案:
在sql查询器中执行下面sql

select Path,PluginAssemblyId,* from [dbo].[PluginAssemblyBase]

会发现其中的Path的值是CRM中的完整路径。
我们需要将其修改为只是dll文件名就可以。
所以执行下面的sql:

update [PluginAssemblyBase] set Path='CRM.XXXXXXXXXX.Plugins.dll'where PluginAssemblyId='2B87612D-264B-492F-BC50-D624ADE7B7B4'
0 0
原创粉丝点击