在VS2015上每次构建后自动发布sql server项目

时间:2017-07-27 11:38:07

标签: sql-server visual-studio-2015 msbuild sql-server-data-tools

我正在使用visual studio 2015并且有一个SQLServer项目,我想要的是每当我构建项目时它会自动发布到sql server。在TFS中,我们可以通过以下方式实现它 更新构建定义 - >过程 - > MSBuild参数 - > / t:Build / t:Publish / p:SqlPublishProfilePath = filePath.publish.xml 在本地PC上,我们可以使用以下命令来完成任务 msbuild ProjectName.sqlproj / t:build / t:发布/p:SqlPublishProfilePath=filePath.publish.xml

但是我们如何更新项目的构建定义,以便在我在本地机器上构建它时,它会自动发布而不使用命令行

1 个答案:

答案 0 :(得分: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添加配置)。 / p>
<Target Name="DeployDB" AfterTargets="build" Condition="'$(Configuration)' == 'LocalAutoDeploy'">