我正在使用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
但是我们如何更新项目的构建定义,以便在我在本地机器上构建它时,它会自动发布而不使用命令行
答案 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'">