2012-10-01 54 views
6

我有一個.net 4 MVC Web Api應用程序,我最初是在Visual Studio 2010中構建的。作爲此解決方案的一部分,我有一套單元測試。

我裝飾了單元測試方法具有以下

[AspNetDevelopmentServerHost("$(SolutionDir)\\DataCollectionService", "/")] 

我的理解是,「$(SolutionDir)」參數保存路徑解決方案目錄,並使得測試套件更通用的,因爲它適用於多種環境。這一切都在Visual Studio中,當我打開在Visual Studio 2012的項目,並嘗試運行測試套件我得到以下錯誤的偉大工程2010年

然而

「消息:網站路徑「$(SolutionDir) \ DataCollectionService」不存在......」

如果我將其更改爲的確切路徑類似

[AspNetDevelopmentServerHost("D:\\CASLog\\Trunk\\DataCollectionService", "/")] 

它工作正常,雖然它不再通用。

我不確定它的重要性,但我的visual studio 2010有resharper,而我的visual studio 2012沒有。

任何想法是怎麼回事?

回答

6

因爲$(SolutionDir)實際上是一個宏。 VS2012中不再提供宏。 一種解決方法是使用環境變量(自定義或%PathToWebRoot%)。 AspNetDevelopmentServerHost支持環境變量。您可以使用Environment.SetEnvironmentVariable在ClassInitializeAttribute方法中設置值。

相關問題