1

なじみのない新しい領域である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()、System.Web.UI.Control.EnsureChildControls()、System.Web.UI.WebControls.WebParts.Part.get_Controls()、System.Web.UI.Control.AddParsedSubObject (Object obj)at Microsoft.SharePoint.WebPartPages.WebPart.AddParsedSubObject(Object obj)at MooDInternational.VisualWebParts.Chart.Chart .__ BuildControlTree(Chart __ctrl)at MooDInternational.VisualWebParts.Chart.Chart.InitializeControl()at MooDInternational.VisualWebParts.Chart .Chart.OnInit(EventArgs e)at System.Web.UI.Control.InitRecursive(ControlnamingContainer)at System.Web.UI.Control.AddedControl(Control control、Int32 index)atSystem.Web.UI.WebControls.WebParts。 System.Web.UI.WebControls.WebPartsのWebPartManager.WebPartManagerControlCollection.AddWebPartHelper(WebPart webPart)。WebPartManager.WebPartManagerControlCollection.AddWebPart(WebPart webPart)at System.Web.UI.WebControls.WebParts.WebPartManagerInternals.AddWebPart(WebPart webPart)at Microsoft.SharePoint.WebPartPages.SPWebPartManager.AddWebPartWithRetry(WebPart webPart)atMicrosoft.SharePoint.WebPartPages.SPWebPartManager。 Microsoft.SharePoint.WebPartPages.SPWebPartManager.LoadWebParts()のCreateWebPartsFromRowSetData(Boolean onlyInitializeClosedWebParts)Microsoft.SharePoint.WebPartPages.SPWebPartManager.LoadWebParts()のCreateWebPartsFromRowSetData(Boolean onlyInitializeClosedWebParts)Microsoft.SharePoint.WebPartPages.SPWebPartManager.LoadWebParts()のCreateWebPartsFromRowSetData(Boolean onlyInitializeClosedWebParts)
Microsoft.SharePoint.WebPartPages.SPWebPartManager.OnPageInitComplete(Object sender、EventArgs e)at System.EventHandler.Invoke(Object sender、EventArgs e)at System.Web.UI.Page.OnInitComplete(EventArgs e)
at System.Web.UI .Page.ProcessRequestMain(ブール値includeStagesBeforeAsyncPoint、ブール値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 \ Extensions \ Microsoft \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 /ログ:初期PrivatePath = C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ Extensions \ Microsoft \ SharePoint \ VstspCache10724ログ:動的Base = NULL LOG:キャッシュBase = NULL LOG:AppName = NULL呼び出し元のアセンブリ:(不明)。ログ:このバインドは、デフォルトのロードコンテキストで開始されます。ログ:アプリケーション構成ファイルの使用: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 \ assembly \ 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のものの1つまで追跡したことを知ってください。100%確実ではなく、修正方法もまだわかりません。

4

1 に答える 1

0

asp.netでは、この種のエラーは、binまたはtempasp.netフォルダーで古い参照が置き換えられないことを意味します。私があなただったら、それらのフォルダをクリーンアップしてプロジェクトを再構築します。

于 2012-09-13T13:24:19.707 に答える