2012-08-31 9 views
11

Peter Provost's articleで説明しているように、私のアプリケーションプロジェクト(テスト中のシステム)に対応するVisual Studio 2012ユニットテストプロジェクトにFakesアセンブリを追加しました。しかし、このプロジェクトは、もはや生成された偽物のコード内の未解決型の参照のために、構築します:Fakeアセンブリでプロジェクトをビルドできません

The type or namespace name 'FieldDefinition' does not exist in the namespace 'bc::ProductStudio' (are you missing an assembly reference?) 
[C:\Users\arvek\Projects\Project\Project.Tests\obj\Debug\Fakes\bc\f.csproj] 
C:\Users\arvek\Projects\Project\Project.Tests\f.cs 

ここで何が間違っているんですか?私が知っていることから、これはちょうど働くことになっているので、Fakesの施設にはバグがあるように思えます。

+0

VSのバグに起因するVS 2013にも同様の問題の問題があります。回避策もあります。あなたはそれを見ることができます[ここ](http://connect.microsoft.com/VisualStudio/feedback/details/809792/could-not-load-project-assembly-for-microsoft-fakes-generation) – Mohoch

答えて

4

偽装されたアセンブリによってトリガされるFakeのバグが原因の可能性が最も高いです。 Microsoftに問題を提出しました。

+0

へのリンクはありますか?あなたが共有できる問題? – lance

+1

@lanceはい、私はプロプライエタリコードhttps://connect.microsoft.com/VisualStudio/feedback/details/760676/cant-build-project-with-fakes-assemblyを提出する必要があったので、アクセスはプライベートになっていました。 – aknuds1

4

問題の診断に役立つオプションは、偽の診断を有効にすることです。あなたの.fakesファイル。

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011" Diagnostic="true" Verbosity="Noisy"> 

また、「MSBuildプロジェクトのビルド出力の詳細」が「診断」に設定されていることを確認してください。ツール - >オプション - >プロジェクトとソリューション - >ビルドと実行でこれを見つけることができます。

はあなたのテストプロジェクトを再構築し、今あなたの出力ウィンドウには、このバグは、同様にVS2013に存在している偽物

+0

多くの場合、Dignostic = "true"の設定で十分です。 Visual Studio 2012 Update 1を使用すると、発生したコード生成に関する警告がFakeによって生成されます。警告はVisual Studioのエラーリストウィンドウに自動的に表示されます。 –

9

のための任意の障害を含む情報の完全でなければなりません。 MSDNバグLinkに。

作業前後: FakeAssembliesフォルダからファイル.messagesを削除します。

2

Fakesフォルダを削除するとこの問題が解決されます。

0

あなたはこれを信じるつもりはありませんが、ファイルに新しい行を追加し、その行を削除し、実質的に修正されていないファイルを保存するだけで、偽物を再現することができました。次のビルドの後、すべてがうまくいった。

あなたが行かせること...うーん...

関連する問題