2012-08-31 50 views
11

我已經向我的Visual Studio 2012單元測試項目添加了一個Fakes程序集,對應於我的應用程序項目(被測系統),如Peter Provost's article中所述。然而,該項目將不再興建,是考慮在生成的僞造品代碼未解決的引用類型:無法使用Fakes組件構建項目

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 2013中有一個類似的問題,由VS中的一個錯誤引起。還有一個解決方法。你可以看到它[這裏](http://connect.microsoft.com/VisualStudio/feedback/details/809792/could-not-load-project-assembly-for-microsoft-fakes-generation) – Mohoch

回答

4

的錯誤很可能是由於被僞造裝配引發假貨錯誤。我已將問題提交給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項目生成輸出冗長」設置爲診斷。您可以在工具 - >選項 - >項目和解決方案 - >生成並運行中找到它。

重建你的測試項目,現在你的輸出窗口應該充滿信息,包括假貨

+0

在很多情況下,現在應該設置Dignostic =「true」。使用Visual Studio 2012 Update 1,這會讓Fakes生成它遇到的代碼生成問題的警告。警告會自動顯示在Visual Studio的「錯誤列表」窗口中。 –

9

任何故障此錯誤存在於VS2013爲好。 Link到MSDN的bug。

解決方法:從FakeAssemblies文件夾中刪除文件。消息。

2

刪除假貨文件夾將解決這個問題。

0

你不會相信這一點,但我可以通過簡單地增加一個新行到文件中,除去新行,然後保存什麼是有效的未經修改的文件,以獲得再次合作的假貨。下一次構建之後,一切都很好。

讓你走的事......嗯......