26

次の問題があります。

Silverlight 5 アプリケーションのコード化された UI テストを作成するためのサポートを追加しようとしています ([MSDN][1])。最初のステップは、Silverlight 5 プロジェクトでアセンブリ Microsoft.VisualStudio.TestTools.UITest.Extension.SilverlightUIAutomationHelper.dll を参照することです。残念ながら、参照が追加された後、プロジェクトはコンパイルを停止し、多くの同様のエラーが発生します。

>

 Error  25  Cannot resolve reference assemblies. Please check the reference assemblies. Could not load file or assembly 'System.Core, Version=5.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) ....\ErrorReportDialog.xaml


Looks like System.Core 5.0.5.0 fails to load, okay, debugging assemblies loading with Fuslogw produces two interesting logs:

First log:

> Assembly Binder Log Entry  (04.03.2013 @ 14:07:49)
The operation was successful.
Bind result: hr = 0x0. The operation completed successfully.
Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable  C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
A detailed error log follows. 
=== Pre-bind state information ===
LOG: DisplayName = System.Core, Version=5.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e
 (Fully-specified)
LOG: Appbase = file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = MSBuild.exe
Calling assembly : System.Windows, Version=5.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e.
LOG: This bind starts in LoadFrom load context.
WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load().
LOG: Using application configuration file: C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe.Config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Post-policy reference: System.Core, Version=5.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e
LOG: Binding succeeds. Returns assembly from C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v5.0\System.Core.dll.
LOG: Assembly is loaded in LoadFrom load context.

Looks like System.Core, Version=5.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e loads succesfully.

But second log entry produces the following error:

> Assembly Binder Log Entry  (04.03.2013 @ 14:07:49)
The operation failed.
Bind result: hr = 0x80131040. No description available.
Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable  C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
A detailed error log follows. 
Pre-bind state information
LOG: DisplayName = System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e
 (Fully-specified)
LOG: Appbase = file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = MSBuild.exe
Calling assembly : Microsoft.VisualStudio.TestTools.UITest.Extension.SilverlightUIAutomationHelper, Version=10.0.30319.381, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a.
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe.Config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Redirect found in application configuration file: 2.0.5.0 redirected to 5.0.5.0.
LOG: Post-policy reference: System.Core, Version=5.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e
LOG: The same bind was seen before, and was failed with hr = 0x80131040.
ERR: Unrecoverable error occurred during pre-download check (hr = 0x80131040).

Microsoft.VisualStudio.TestTools.UITest.Extension.SilverlightUIAutomationHelper.dll が System.Core、Version=2.0.5.0、Culture=neutral、PublicKeyToken=7cec85d7bea7798e を読み込もうとしているように見えますが、System.Core、Version=5.0.5.0 にリダイレクトされています。 、Culture=neutral、PublicKeyToken=7cec85d7bea7798e (最初のログから既に読み込まれています) で、まだ読み込みに失敗します。

Can anyone provide some insight on how to further debug this problem? I'm compiling Silverlight projects for AnyCpu platform.


  [1]: http://msdn.microsoft.com/en-us/library/gg413374.aspx
4

1 に答える 1

1

SilverlightUIAuthomationHelper が必要とする System.Core のバージョンを確認するには、次の手順を実行します。

  1. ディスク上で参照されている SilverlightUIAuthomationHelper dll を見つけます。
  2. 任意の逆アセンブラー/リフレクター (dotPeek やリフレクターなど) にロードします。
  3. 参照されているアセンブリのバージョンを確認してください - System.Core は SilverlightUIAuthomationHelper のバージョンで 2.0.5.0 である必要があります

可能な解決策:

  1. SilverlightUIAuthomationHelper を、新しい System.Core dll (バージョン 5.0.5.0) を参照する新しいバージョン (Hans Passant コメントのリンク) に更新します。
  2. fuslogvw は、2.0.5.0 から 5.0.5.0 へのリダイレクトが APPLICATION 構成ファイルにあると言っているため、このリダイレクトを見つけて削除してみてください (詳細はこちら)。しかし、他の何かが壊れる可能性は非常に高いです。
于 2013-06-05T14:31:36.120 に答える