2017-07-27 20 views
0

我正在使用visual studio 2015並擁有一個SQLServer項目,我想要的是每當我構建項目時,它都會自動發佈到SQL Server。在TFS中,我們可以通過以下步驟實現: 更新構建定義 - >進程 - > MSBuild參數 - >/t:Build/t:Publish/p:SqlPublishProfilePath = filePath.publish.xml 在本地pc上,我們可以使用以下命令實現任務 的MSBuild ProjectName.sqlproj /噸:編譯/噸:發佈/p:SqlPublishProfilePath=filePath.publish.xml在VS2015上每次構建之後自動發佈sql server項目

但如何才能更新項目的構建定義,這樣,當我建立它在我的地方機器自動發佈而不使用命令行

回答

0

我們如何更新項目的構建定義,以便在我的本地機器上構建它時,它會自動發佈沒有使用命令行

要做到這一點,請卸載您的項目,編輯項目文件ProjectName.sqlproj。然後,在項目的最後,略低於腳本結束標記</Project>,地點前:

<Target Name="DeployDB" AfterTargets="build"> 
    <Message Importance="high" Text="************** Star Deploying DB **************"/> 
    <Message Importance="high" Text="Deploying Project: $(MSBuildProjectDirectory)$(MSBuildProjectName).sqlproj" /> 
    <Message Importance="high" Text="Deployment Profile: $(MSBuildProjectDirectory)PublishProfiles$(MSBuildProjectName).publish.xml" /> 

    <MSBuild Projects="$(MSBuildProjectDirectory)$(MSBuildProjectName).sqlproj」 Properties=」SqlPublishProfilePath=$(MSBuildProjectDirectory)PublishProfiles$(MSBuildProjectName).publish.xml" Targets="sqlPublish" /> 
</Target> 

你可以使用一些MSBuild Reserved and Well-Known Properties像$(MSBuildProjectName)和$(MSBuildProjectDirectory),用於完整列表

順便說一句,自動發佈會減慢你的速度,你可能不需要爲每個版本發佈。在這種情況下,您可以爲此目標添加一個Condition,以便您選擇是否需要在每次構建後自動發佈sql server項目(不要忘記添加配置爲LocalAutoDeploy)。

<Target Name="DeployDB" AfterTargets="build" Condition="'$(Configuration)' == 'LocalAutoDeploy'"> 
相關問題