2017-07-17 42 views
0

我試圖在包含MVC項目和SQL Server數據庫項目的解決方案的Visual Studio Team Services中設置CI/CD。團隊服務構建定義在已發佈的工件中缺少dacpacs

使用ASP.NET(PREVIEW)模板我的解決方案中的兩個項目都生成了,但是我發現我的SQL Server數據庫項目中的dacpac沒有作爲工件發佈,並且不在C:\agent\_work\11\a文件夾中。

我需要爲解決方案中的每個項目創建兩個構建定義嗎?如果是的話,應該如何配置參數Path to solution or packages.config

或者,我只需要將Copy Files任務添加到我的構建定義中,以將dacpacs傳輸到C:\agent\_work\11\a文件夾中?

+0

您是否用我們的解決方案解決了這個問題? –

回答

2

一般來說,我提供了一個MSBuild參數/p:OutDir=$(Build.ArtifactStagingDirectory)到MSBuild或Visual Studio Build步驟。這會強制將所有輸出放入工件暫存文件夾中。

如果你這樣做,你的DACPAC文件仍然不是神器暫存文件夾,那麼你可能會建立錯誤的東西,或者構建一個解決方案配置/平臺,有你的設置爲不建SSDT項目。

+0

這是默認的MSBuild參數'/ p:DeployOnBuild = true/p:WebPublishMethod = Package/p:PackageAsSingleFile = true/p:SkipInvalidConfigurations = true/p:PackageLocation =「$(build.artifactstagingdirectory)\\」工件中有5個文件。那和你對OutDir屬性的建議有什麼區別? – mheptinstall

+0

@mheptinstall此參數用於發佈web項目,它不會發布數據庫項目,因此您需要添加Copy Files任務以將dacpacs文件複製到artifact文件夾。 –

+0

Daniel Mann的回答爲我工作。只向Visual Studio生成任務添加/p:OutDir=$(Build.ArtifactStagingDirectory)會導致將DACPAC文件發佈到放置文件夾。 – Mcanic

0

在解決方案中有Web和數據庫項目,您需要將數據庫項目輸出複製到帶有額外任務的工件文件夾。 (例如複製文件任務)

參數:/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\"用於發佈web項目,它不會發布數據庫項目。

+0

按我的建議提供額外的'/ p:OutDir = $(Build.ArtifactStagingDirectory)'參數應該可以完成同樣的事情,而不需要額外的複製文件任務。我經常這樣做。 –

+0

@DanielMann是的,但是web項目也輸出到工件文件夾,這些文件應該打包在zip文件中。 –

相關問題