我在一个新的不熟悉的领域出现错误,SharePoint开发。我正在尝试通过Visual Studio 2012调试我的解决方案,并且我收到了EventLog中记录的以下错误:
异常信息:
Exception type: FileLoadException Exception message: The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
在@__BuildControlTree方法中,我的控件的.ascx.g.cs中出现错误。不幸的是它没有告诉我程序集的名称,所以我不确定错误在哪里。报告的堆栈跟踪是:
堆栈追踪:
在MI.VWP.Chart.Chart.CreateChildControls()at System.Web.UI.Control.EnsureChildControls()at System.Web.UI.WebControls.WebParts.Part.get_Controls()at System.Web.UI.Control.AddParsedSubObject(Object obj)at Microsoft.SharePoint.WebPartPages.WebPart.AddParsedSubObject(对象 obj)at MooDInternational.VisualWebParts.Chart.Chart .__ BuildControlTree(图 __ctrl)在MooDInternational.VisualWebParts.Chart.Chart.InitializeControl()处于 MooDInternational.VisualWebParts.Chart.Chart.OnInit(EventArgs e)at System.Web.UI.Control.InitRecursive(Control namingContainer)at System.Web.UI.Control.AddedControl(控件控件,Int32索引)at System.Web.UI.WebControls.WebParts.WebPartManager.WebPartManagerControlCollection.AddWebPartHelper(的WebPart webPart)在 System.Web.UI.WebControls.WebParts.WebPartManager.WebPartManagerControlCollection.AddWebPart(的WebPart webPart)在 System.Web.UI.WebControls.WebParts.WebPartManagerInternals.AddWebPart(的WebPart webPart)在 Microsoft.SharePoint.WebPartPages.SPWebPartManager.AddWebPartWithRetry(的WebPart webPart)在 Microsoft.SharePoint.WebPartPages.SPWebPartManager.CreateWebPartsFromRowSetData(布尔 onlyInitializeClosedWebParts)at Microsoft.SharePoint.WebPartPages.SPWebPartManager.LoadWebParts()
在 Microsoft.SharePoint.WebPartPages.SPWebPartManager.OnPageInitComplete(对象 发件人,EventArgs e)在System.EventHandler.Invoke(对象发送者, EventArgs e)在System.Web.UI.Page.OnInitComplete(EventArgs e)
在System.Web.UI.Page.ProcessRequestMain(布尔值 includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)
如果我尝试在那里设置断点,我不会调用该方法。我已经尝试过看看fusionlog但是得到了以下我认为没有帮助......
*装配活页夹日志条目(13/09/2012 @ 14:16:15)*
手术成功。绑定结果:hr = 0x0。操作 成功完成。
装配管理器从以下位置加载: C:\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ mscorwks.dll正在运行 在可执行文件C:\ Program Files(x86)\ Microsoft Visual Studio下 11.0 \ Common7 \ IDE \扩展\微软\的SharePoint \ vssphost4.exe ---详细的错误日志如下。
===预绑定状态信息===日志:用户= ** 。*****日志:DisplayName = Microsoft.Build.Framework,Version = 2.0.0.0, Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a(完全指定) 日志:Appbase = file:/// C:/ Program Files(x86)/ Microsoft Visual Studio 11.0 / Common7 / IDE / Extensions / Microsoft / SharePoint / LOG:初始PrivatePath = C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ Extensions \ Microsoft \ SharePoint \ VstspCache10724 LOG:Dynamic Base = NULL LOG:Cache Base = NULL LOG:AppName = NULL Calling 汇编:(未知)。日志:此绑定在默认加载上下文中启动。 日志:使用应用程序配置文件:C:\ Program Files (x86)\ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ Extensions \ Microsoft \ SharePoint \ vssphost4.exe.Config日志:使用来自的机器配置文件 C:\ WINDOWS \ Microsoft.NET \ Framework64 \ V2.0.50727 \ CONFIG \ machine.config中。 日志:绑定成功。返回汇编 C:\ WINDOWS \装配\ GAC_MSIL \ Microsoft.Build.Framework \ 2.0.0.0__b03f5f7f11d50a3a \ Microsoft.Build.Framework.dll。 日志:程序集在默认的加载上下文中加载。
有人可以就如何解决这个问题提出任何建议吗?
修改
使用Reflector我设法调试生成的@_BuildControl方法,并发现对AddParsedSubject(object child)的调用,这是一个控件上的虚方法。
添加以下代码:
protected override void AddParsedSubObject(object obj)
{
System.Web.UI.Control child = obj as System.Web.UI.Control;
if (child != null)
{
try
{
base.AddParsedSubObject(obj);
System.Diagnostics.Trace.WriteLine("Added " + child.ToString());
}
catch (Exception ex)
{
System.Diagnostics.Trace.WriteLine("Error with " + child.ToString() + " : " + ex.ToString());
}
}
}
这告诉我导致问题的控件是DevExpress.XtraCharts.Web.WebChartControl,所以我知道我已经将程序集跟踪到其中一个DevExpress,而不是100%确定哪个并且还不确定如何解决它
答案 0 :(得分:0)
在asp.net中,这种错误意味着在bin或temp asp.net文件夹中没有替换旧的引用。如果我是你,我会清理这些文件夹重建我的项目..