2016-02-01 310 views
5

我已經在Team Services上創建了VS構建定義。當我排隊時,構建會成功運行,並且除了我使用Web Api2創建的服務層之外,還會爲解決方案中的所有項目輸出dlls。在Visual Studio Team Services中構建不發佈Web API項目(VS Online)

當我從放置位置下載工件時,我有夾持數據層,業務層和其他幫助程序項目的dll的文件夾。我沒有的是我可以部署到我的IIS的主要服務層dll。

這是我的發佈設置的屏幕截圖。

enter image description here

什麼可能我會丟失?

回答

11

看來你正在使用的構建定義的默認設置。通過這些設置,「複製文件」任務的內容是「** \ bin \ $(BuildConfiguration)**」,而web api項目沒有buildconfiguration文件夾。所以它找不到web api項目的文件。要複製這些文件,添加一個「複製文件」任務,併爲以下配置設置: enter image description here

如果你想項目的部署文件,你需要設置你建立的定義如下:

  1. Visual Studio Build添加參數/p:DeployOnBuild=true;OutDir="$(build.artifactstagingdirectory)"步驟。
  2. 刪除Copy Files一步。
  3. 設置發佈路徑爲$(build.artifactstagingdirectory)\\_PublishedWebsitesPublish Build Artifacts步驟。

然後你應該得到drop文件夾中的部署文件。

+0

謝謝。這似乎並不像發佈操作那樣複製文件。我期待global.asax和web.config文件與bin文件夾一起存在。當我右鍵單擊該項目並使用發佈選項時,它會複製運行該服務所需的所有文件,即bin文件夾和global.asax&web.config。 – user20358

+0

此外,複製文件的步驟似乎仍然是從其他項目複製dll。我期待只發布與服務相關的文件和bin文件夾。有什麼辦法可以控制嗎?稍後當我添加一個MVC項目時,我需要採取哪些其他步驟? – user20358

+0

謝謝。這工作。但是,如果我在解決方案中有多個服務項目和一個mvc項目,這個解決方案是否也可以工作? – user20358

0

在VisualStudio中打開配置管理器,並確保包含您正在構建的配置(調試,發佈等)的WebAPI項目。

enter image description here

相關問題