2

Visual Studio 2010 と .Net 4.0 を使用して最初に開発されたプロジェクトがあります。これは、カスタム MVC 3 コントローラーを実装し、動的型を使用するクラス ライブラリです。プロジェクトに変更を加えずに Visual Studio 2012 RTM でプロジェクトを開くと、動的型で次のエラーが発生します。

動的式のコンパイルに必要な 1 つ以上の型が見つかりません。参照がありませんか?

次のような別のエラーも発生しています。

コンパイラに必要なメンバー 'Microsoft.CSharp.RuntimeBinder.Binder.InvokeMember' がありません

それらは関連する問題のようです。Visual Studio 2012 が混乱している理由がわかりません。Microsoft.CSharp アセンブリは参考文献にあります。Visual Studio 2010 でプロジェクトを再度開くと、問題なくコンパイルされます。誰かがこの問題に遭遇し、その解決策を知っていますか?

4

2 に答える 2

2

私の場合、Microsoft.CSharp アセンブリへの参照がありませんでした。JSON.NET、動的型、および Visual Studio 2012 を使用しようとすると、このエラーが発生しました。

于 2012-11-14T13:16:19.583 に答える
1

答えは、VS 2010 と 2012 のいずれかでコンパイルするときに存在していた警告にあることが判明しました。警告は次のとおりです。

定義済みの型 'System.Runtime.CompilerServices.CallSite' は、グローバル エイリアスの複数のアセンブリで定義されています。「..\IronJS.Core.0.2.0.1\lib\net40\Microsoft.Scripting.Core.dll」の定義を使用

このプロジェクトは IronJS を使用し、参照されていたパッケージに Microsoft.Scripting と Microsoft.Dynamic のコピーが含まれていました。これらの参照を削除し、グローバル アセンブリ内のバージョンを参照したところ、すべて正常に動作しました。VS 2010では問題がなかったのに、VS 2012で問題が発生した理由はわかりません。または、なぜあいまいなエラーが発生したのか。

于 2012-10-08T17:23:10.020 に答える