2

當我構建解決方案文件時,世界上有多少人擁有SSDT來運行我的發佈腳本?指定在構建中使用哪個發佈腳本?

如果您:1。 )右鍵點擊你的解決方案 2)點擊Confugration屬性 3)單擊配置

我可以看到數據庫項目,並在那裏進行檢查,對構建部署,它不讓我指定要使用的發佈腳本。有沒有人有任何想法?

+0

您是否正在嘗試使用發佈配置文件?前/後部署腳本?希望確保我能理解,以便得到您需要的答案。 –

+0

對此進行排序的一種方法是在生成後事件命令行框中使用SqlPackage實用程序。不知道是否最好,但找不到別的。只是在博客上寫道: http://tangodude.wordpress.com/2014/02/07/ssdt-publish-on-build-using-specific-profile/ – Jorge

回答

0

據我所知,這是不可能的。

爲什麼?他們是兩個完全不同的東西。

建築物(如果你認爲它是代碼)編譯和檢查,產生文物。對於.NET代碼,這些工件是DLL的/ .exe等等。對於.sqlproj,它是在/ sql/[Build Configuration Name]中出現的.dacpac等。

發佈類似於如果您正在談論.NET代碼部署。建築不包括出版作爲一項行動。

諷刺的是,有一個發佈動作還建立了解決方案,所以我的建議,而不是去考慮下列之一:

  1. 發佈項目(右鍵點擊發布,或雙擊您選擇的.publish .xml文件),只要你想建立。
  2. 使用Post-Build command line in the project Properties調用sqlpackage.exe來部署新與你指定的.publish.xml輪廓編譯.dacpac - 但請注意,這將在Visual Studio中也影響你的發佈行動用作發佈建立然後發佈(所以你最終會發布兩次)。
  3. 根據你的舒適度/如果你是一個命令行的粉絲,然後使用命令行(bash文件?Powershell?)到call msbuild,然後是sqlpackage.exe。無論何時您想構建,請在cmd.exe中運行您的命令。
  4. 與#3,add a menu item to the Tools menu類似,它可以完成同樣的事情(msbuild後接sqlpackage部署),但是在Visual Studio本身中。
  5. 查看一個持續集成模型(TFS/TeamCity/Bamboo/Jenkins和約3000個其他模型),可以在每次更改時自動爲您構建和部署 - 在另一臺服務器上或在本地運行(我將其放入瞭解你的情況,所以可能非常不適合解決你的問題)。
相關問題