【发布时间】:2019-10-16 13:56:38
【问题描述】:
我正在使用 TFS 和 Visual Studio 2017。我有两台服务器用于负载平衡,两台服务器都有我的 MVC 应用程序的相同发行版本(理论上)。
目前的发布流程如下:
- 通过将所有文件复制到 _old 文件夹来备份现有根文件夹。
- 手动将发布文件复制到服务器上,即 Ctrl+c 和 Ctrl+v。
我对服务器 2 做同样的事情。
我想知道是否有办法自动执行此操作。
我尝试了以下方法: 我创建了一个发布配置文件,它一次将发布到一个服务器,这是有效的,但是现有文件的备份(即第 1 步)仍然是手动的,而且我必须在每台服务器上执行两次(即有创建两个配置文件而不是 1)
我确实尝试如下调整 pubxml 文件 我的 *.pubxml 文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<publishUrl>\\10.0.0.100\c$\Applications\TestApps\Test</publishUrl>
<publishUrl>\\10.0.0.101\c$\Applications\TestApps\Test</publishUrl>
<DeleteExistingFiles>False</DeleteExistingFiles>
</PropertyGroup>
</Project>
上述方法不起作用,当我尝试使用此发布配置文件发布时,这很有趣。只有服务器 2 (10.0.0.101) 收到了我的更改,任何人都可以帮忙。
我正在使用 视觉工作室 2017 Visual Studio Team Foundation Server 15.117.26714.0
【问题讨论】:
-
为什么要手动复制而不是使用 Visual Studio 中的发布功能?无论如何,是的,Powershell 脚本无疑可以自动执行此操作。或者,您可以彻底现代化您的流程并进入更多 DevOps 风格的自动化构建/测试/发布管道。您可能会使用很多工具。 Azure DevOps Services 可能是首先要研究的一个 - 你可以很容易地将 TFS 源代码控制迁移到它,而且它不可避免地与其他 Microsoft 产品很好地配合。
标签: c# asp.net-mvc visual-studio web-deployment publish-profiles