【发布时间】:2017-03-17 16:32:06
【问题描述】:
使用 Visual Studio 2015 更新 3 和 Team Foundation 服务器更新 3(现场)
我正在尝试为针对完整框架 4.61 的 .net 核心样板应用程序进行设置和自动部署。目前,我的应用程序主要是您在选择 new->Project->Templates->Visual C#->Web->ASP.NET Core Web Application(.Net Framework) 时获得的常用应用程序。我的目标是通过 Git 推送,然后让网站在测试服务器上正确显示。
我能够使用在MVA 找到的说明 但是,他们没有详细说明如何部署到本地服务器。但他们明确表示这是可能的。
我在 TFS2015 中使用 Git 作为源代码控制设置了这个 Web 项目。对于我的构建定义,我使用 Visual Studio 默认构建 ScreenShot of TFS build Definition,每当我推送新代码时,我都会构建站点。
我的问题是我不知道下一步该做什么。 我的想法是我需要:
- 通过 PowerShell 关闭 IIS (iisreset -stop)。
- 将构建的文件移动到我的 iss 位置。在这个例子中,它是 C:\inetpub\apps\My
- 运行脚本来更新数据库架构(注意目前没有数据库设置,但这是我的下一步。计划使用“代码优先”和“实体框架”
- 我必须重新打开 IIS。
我确实得到了一个重要线索,可以在我的 Visual Studio 构建步骤中添加以下内容。 MSBuild 参数。
/p:DeployOnBuild=True /p:DeployDefaultTarget=WebPublish
/p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True
/p:publishUrl=$(build.artifactstagingdirectory)\for-deploy\website
来自 Benjamin Day 博客 www.benday.com/2016/09/08/an-asp-net-mvc-site-thats-easy-to-deploy-from-a-tfs-build/(抱歉不能由于缺少代表点而链接)
使用那些构建 MS 构建参数,我可以找到我构建的网站,它似乎工作正常,除了显示 Web.config 文件
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
应该是什么时候
<aspNetCore processPath=".\My.Multnomah.exe" arguments="" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" />
我的发布定义分为三个步骤
-
目标机器上的 PowerShell
机器 = 我要部署到的服务器 Admin Login = 我的 AD 用户名。(工作后会切换到服务帐户) 协议 = Https PowerShell 脚本 = 我在代理 PC/这也是测试 Web 服务器上的脚本上的文件位置
这里是打开 IIS 的 PowerShell 脚本。 iisreset - 停止
Windows 机器文件复制 这一步工作正常
目标计算机上的 PowerShell 与第 1 步相同。但
目前,如果我手动关闭 IIS 然后手动更新 web.config 文件,则该版本正在运行。
那么,简而言之,这里有问题吗?
如何自动更正 web.config?
-
如何安排在文件传输之前停止 IIS 并在传输之后启动,或者有更好的方法吗?(如果我没有关闭 IIS,当前版本将失败)
我的理解是否正确/您将使用哪些构建步骤来进行本地部署?
【问题讨论】:
-
你用我的解决方案解决了这个问题吗?
标签: asp.net asp.net-mvc deployment tfs visual-studio-2015