我在CRM 2011实例中注册了自定义插件。直到今天,该插件工作正常但突然间我在创建记录时遇到此System.BadImageFormatException错误。我已经尝试过研究这个问题,但我只能在注册插件时找到有这个问题的人。我的研究让我相信它与64位和32位有关。我已经尝试将我的程序集的目标从“任何CPU”更改为64位,但是当插件执行时我得到相同的错误。错误详情如下。提前谢谢。
Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: System.BadImageFormatException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #6C9D565ADetail:
<OrganizationServiceFault xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/xrm/2011/Contracts">
<ErrorCode>-2147220970</ErrorCode>
<ErrorDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/System.Collections.Generic" />
<Message>System.BadImageFormatException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #6C9D565A</Message>
<Timestamp>2016-03-17T19:05:45.6106609Z</Timestamp>
<InnerFault i:nil="true" />
<TraceText>
[PluginProfiler.Plugins: PluginProfiler.Plugins.ProfilerPlugin]
[0b8f5ab6-66ec-e511-8367-000c29e9a79c: MultiFamily.PostHomeCreate: Create of anh_home (Profiler)]
</TraceText>
</OrganizationServiceFault>
答案 0 :(得分:1)
如果将其设置为“Any CPU”,它应该选择体系结构(x86,x64)。
它看起来像插件分析器的架构(如何编译pluginregistration)和你的插件不匹配。 BadImageFormatException通常由x86程序集引发,试图加载x64或反之。
答案 1 :(得分:0)
我设法解决了我的问题,但我仍然不确定原因是什么。我不是100%确定错误与插件代码无关所以我注释掉所有代码行(保存注册和执行插件所需的行),通过插件注册工具编译和更新插件。然后,我从CRM内部触发了插件执行并且低,并且看到插件执行没有错误。现在我只需找到导致错误的代码行。这就是事情变得奇怪的地方。
由于完全实现的插件抛出错误,我无法分析和调试插件,所以我采用逐行恢复插件的功能。每次我将恢复一些我将构建的功能,更新程序集并测试从CRM执行的插件。奇怪的是,我能够恢复所有原始功能,构建,更新和测试插件,没有任何错误。
我不确定会出现什么问题,但绝对没有任何改变,但我现在有一个功能齐全的插件。经验教训,当没有其他工作时,所有人都离开了游泳池。
感谢Jordi的时间和评论,希望他们可以帮助别人,而不是帮助我。