11

Visual Studio 2010 で開発された既存のプロジェクト (.NET4 をターゲット) をコンパイルしようとしています。現在、VS2012 への移行をテストしています。

既存のプロジェクトをモルでコンパイルすると、次のエラーが頻繁に発生します。

型または名前空間名 'Claim' が名前空間 'System.Security.Claims' に存在しません (アセンブリ参照がありませんか?) [C:\ProjectPath\Project.Tests.Unit\obj\Debug\Moles\m\ mgcsproj] C:\ProjectPath\Project.Tests.Unit\mgcs

このメッセージを表示するさまざまなタイプの膨大なリストがあります。

何かご意見は?

4

3 に答える 3

7

この記事に基づいて、モル/スタブの生成からいくつかの名前空間と型を除外しました。

Visual Studio 11 / .NET 4.5 でのトラブルシューティング

現在コンパイル中です(いくつかのテストはまだ失敗していますが、コンパイル中です)。

于 2012-09-05T09:11:15.423 に答える
1

VS 2010 から VS 2010 SP1 にアップグレードするときに問題が発生しました。Service Pack には、Moles の最新バージョンでは認識できないさまざまな CLR メソッドが含まれています。

于 2012-09-19T10:27:51.367 に答える
0

Moles テストを更新してFakes と Stubs (Moles のリリース バージョン) を使用することをお勧めします。 Fakes と Stubsは .NET 4.5 と C# 5 に含まれており、Visual Studio 2012 でサポートされています。Fakes への変換は、基本的に Moles と同じであるため、難しくありません。

@Peter が投稿した同じ記事を紹介するつもりでした。(Peter さん、いいですね!) 説明されている回避策により、問題が解決されるはずです。

問題は、Moles が 3.0 ~ 4.0 .NET フレームワーク用に設計されていることにあると思います。4.5 .NET Framework は、新しい非同期サポートなど、このバージョンの新機能の一部を統合しています。Moles は、この新しい非同期パラダイムを処理するためのツールを備えておらず、コードを正しく計測しません。このような問題を防ぐために、コンパイラには通常、サポートされているバージョン スイッチが含まれており、将来のバージョンのコードはコンパイルされません。これは、ここに当てはまるようです。思い出せませんが、Moles 出力ウィンドウを確認してください。これらの名前空間がモールド アセンブリにコンパイルされていないと報告している可能性があります。

バージョンアップについて・・・

Visual Studio 2012 Update 2は、Premium SKU に Fakes のサポートを追加します。

次の理由から、アップグレードをお勧めします。

  • Moles フレームワークは公式にサポートされていません
  • ほくろは完全な製品ではありません
  • ほくろは将来の更新を受信しません (この問題を引き起こしたものなど)

ソフトウェア ハウス、開発ショップ、または IT 部門の従業員であれば、ジョブ マネージャーに対して VS2012 Premium MSDN サブスクリプション SKU の費用を簡単に正当化できるはずです。定期的に契約作業の請求を行わずに自費で支払う場合、または MSDN サブスクリプションの代わりにライセンスを購入する場合は、おそらくこれが高価なオプションであることがわかります。

于 2012-07-31T17:32:21.780 に答える