2014-10-01 92 views
0

我正在從事網站項目,需要一些單元測試(對於控制器等)。TFS生成不生成在Asp.Net MVC項目/ bin文件夾中的DLL

解決方案:
WebPortal
WebPortal.Tests

的Team Foundation Server用於門檢查並構建的解決方案。部署由Octopus管理。 在下面的錯誤門控檢查時:

CSC:元數據文件 'd:\ TFSBuilds ... \來源... \ WebPortal \ BIN \ WebPortal.dll' 無法找到

在該目的地中,只有WebPortal.pdb文件被生成,而WebPortal.Tests項目需要該DLL。然而,在本地主機上生成(int/bin)中的DLL,所以這個錯誤不會發生在那裏。我已經想通了,TFS在bin庫類型項目的bin文件夾中生成DLL。

我該如何解決該問題,以便能夠在使用門控檢查時在WebPortal上運行單元測試?

+0

它應該生成該dll作爲構建的一部分,仔細檢查您的構建順序並確保構建測試項目是最後一個要構建的項目,因爲它可能是一個時間問題 – 2014-10-01 14:39:11

+0

測試項目低於WebPortal項目在構建順序中。之間有更多的項目,但所有的訂單似乎都沒問題。但是它有什麼奇怪的,即使Test項目沒有涉及,WebPortal項目在bin目錄中也不包含DLL。它可能是因爲錯誤的錯誤構建定義或不正確的Octopack腳本配置? – 2014-10-02 06:46:37

回答

1

您需要將您的網站轉換爲Web應用程序。

您可以單獨創建一個新的Web應用程序項目並將該文件放入網站文件夾中。然後將這個新項目添加到您的解決方案並刪除該網站。團隊建立現在將輸出所有需要的文件。

+0

看來我已經有了Web應用程序項目,因爲它使用了MVC,並且它被編譯到BIN文件夾中localhost的DLL中。但是,TFS上的BIN爲空,而所有DLL都複製到Binaries文件夾。我試圖創建新的Web應用程序,它在TFS的BIN文件夾中包含DLL,但是有問題的項目相當大而且不是新的,因此它可能包含一些堰配置。 – 2014-10-03 05:59:42

+0

您應該在Drop文件夾中有一個名爲「_PublishedWebsites \ [Sitename] \」的文件夾。那裏的bin文件夾是空的? – 2014-10-03 15:38:22

+0

是的,我在Binaries文件夾中有這樣一個文件夾。我發現了一些新的東西。看來,包含Octopack的項目是在Binaries目錄中構建的,而其他項目則是在項目的bin文件夾的Sources目錄中構建的。所以問題在於測試項目也是在Sources文件夾中構建的,並且它的構建過程在源文件中搜索WebProject以及在Binaries文件夾中搜索。 – 2014-10-06 06:40:51