2013-10-14 94 views
0

Dynamics CRM 2011的前提下,“插件程序集全名必须唯一”。更新插件注册

我使用插件注册工具注册了一个自定义工作流程组件。

插件代码为:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Activities; 
using Microsoft.Xrm.Sdk; 
using Microsoft.Xrm.Sdk.Workflow; 

namespace CreateDirectDebit 
{ 
    public class CreateDirectDebit : CodeActivity 
    { 
     protected override void Execute(CodeActivityContext context) 
     { 

     } 
    } 
} 

这是成功的。

然后我的代码改成这样:

Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: Plug-in assembly fullnames must be unique (ignoring the version build and revision number). 
Detail: <OrganizationServiceFault xmlns="http://schemas.microsoft.com/xrm/2011/Contracts" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
    <ErrorCode>-2147204741</ErrorCode> 
    <ErrorDetails xmlns:a="http://schemas.datacontract.org/2004/07/System.Collections.Generic" /> 
    <Message>Plug-in assembly fullnames must be unique (ignoring the version build and revision number).</Message> 
    <Timestamp>2013-10-14T10:04:55.4528719Z</Timestamp> 
    <InnerFault> 
    <ErrorCode>-2147204741</ErrorCode> 
    <ErrorDetails xmlns:a="http://schemas.datacontract.org/2004/07/System.Collections.Generic" /> 
    <Message>Plug-in assembly fullnames must be unique (ignoring the version build and revision number).</Message> 
    <Timestamp>2013-10-14T10:04:55.4528719Z</Timestamp> 
    <InnerFault i:nil="true" /> 
    <TraceText i:nil="true" /> 
    </InnerFault> 
    <TraceText i:nil="true" /> 
</OrganizationServiceFault> 

Server stack trace: 
    at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc) 
    at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) 
    at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) 
    at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) 

Exception rethrown at [0]: 
    at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) 
    at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 
    at Microsoft.Xrm.Sdk.IOrganizationService.Update(Entity entity) 
    at Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy.UpdateCore(Entity entity) 
    at Microsoft.Crm.Tools.PluginRegistration.RegistrationHelper.UpdateAssembly(CrmOrganization org, String pathToAssembly, CrmPluginAssembly assembly, PluginType[] type) 
    at Microsoft.Crm.Tools.PluginRegistration.PluginRegistrationForm.btnRegister_Click(Object sender, EventArgs e) 

发生同样的错误:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Activities; 
using Microsoft.Xrm.Sdk; 
using Microsoft.Xrm.Sdk.Workflow; 

namespace CreateDirectDebit 
{ 
    public class CreateDirectDebit : CodeActivity 
    { 
     protected override void Execute(CodeActivityContext context) 
     { 
      // Create the tracing service 
      ITracingService tracingService = context.GetExtension<ITracingService>(); 
      if (tracingService == null) 
       throw new InvalidPluginExecutionException("Failed to retrieve the tracing service."); 

      tracingService.Trace("CreateDirectDebit.Execute, 1"); 


      throw new InvalidPluginExecutionException("Testing dialog custom workflow."); 

     } 
    } 
} 

当我使用插件注册工具我得到按下更新所选插件这个错误更新组件如果我将代码恢复到第一个版本并尝试更新程序集。

我做错了什么?

+0

您是否在增加版本号后尝试过? – Scorpion

+0

你必须是管理员(http://crmdm.blogspot.com/2011/06/plugin-registration-tool-error-in-crm.html)我假设你是? – Daryl

+0

如果您试图再次添加程序集 - daft问题,通常会发生这种情况,但您确定要更新现有程序集而不是尝试添加新程序集吗? – glosrob

回答

0

在动态CRM 2011插件和工作流程程序集中,只要名称,公钥,主要版本和次要版本的现有和新的程序集都相同,就可以更新。如果你的程序集的次要版本增加了(你的VS版本可能会自动完成这个),那么两者都被认为是不同的。

然而,它们可以并排注册。只需注册新版本并删除旧版本。

0

这通常出现两个原因之一:

  1. 你点击注册而不是更新在插件注册工具

  2. 你点击更新但您选择了错误的插件/工作流程组件进行更新。