团队构建:使用 MSDeploy 本地发布

2023-11-29

我刚刚开始使用团队构建功能,我发现做一些非常简单的事情所需的大量事情有点令人不知所措。我目前的设置是一个包含 Web 应用程序、组装应用程序和测试应用程序的解决方案。 Web 应用程序设置了一个通过文件系统发布的 PublishProfile。

我设置了一个 TFS 构建定义,当前每晚构建整个解决方案并将其作为旧构建的备份放到网络共享上。我现在想做的就是让我已经设置的 PublishProfile 为我发布 Web 应用程序。我确信这确实很简单,但我已经使用 MSBuild 命令一整天了,但没有运气。帮助!


不幸的是,MSBuild 不支持或实现发布配置文件的共享。从配置文件发布的逻辑包含在 VS 本身中。幸运的是,该配置文件不包含太多信息,因此有多种方法可以实现您正在寻找的内容。我们的目标并不特别支持与发布对话框所遵循的完全相同的步骤,但为了从团队构建中获得相同的结果,您有两种选择,我将在此处概述这两种选择。

When you setup your Team Build definition in order to deploy you need to pass in some values for the MSBuild Arguments for the build process. See image below where I have highlighted this. alt text

选项1:传入以下参数:

/p:DeployOnBuild=true;DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder;PackageTempRootDir="\\sayedha-w500\BuildDrops\Publish";AutoParameterizationWebConfigConnectionStrings=false

让我稍微解释一下这些参数,向您展示结果,然后解释下一个选项。DeployOnBuild=true:这告诉项目执行中定义的目标DeployTarget财产。

DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder:这指定 DeployTarget 目标。

PackageTempRootDir="\\sayedha-w500\BuildDrops\Publish":这指定了包文件将被写入的位置。这是文件在打包之前写入的位置。

AutoParameterizationWebConfigConnectionStrings=false:这告诉 Web 发布管道 (WPP) 不要参数化 web.config 文件中的连接字符串。如果您不指定此项,那么您的连接字符串值将被替换为占位符,例如 $(ReplacableToken_dummyConStr-Web.config Connection String_0)

执行此操作后,您可以启动构建,然后在 PackageTempRootDir 位置内您将找到一个 PackageTmp 文件夹,其中包含您正在查找的内容。

选项2:因此,对于前一个选项,您可能注意到它创建了一个名为 PackageTmp 的文件夹,如果您不希望这样做,则可以使用以下选项。

/p:DeployOnBuild=true;DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder;_PackageTempDir="\\sayedha-w500\BuildDrops\Publish";AutoParameterizationWebConfigConnectionStrings=false

这里的区别在于,而不是PackageTempRootDir你会通过_PackageTempDir。我之所以不建议这样做,是因为以 _ 开头的 MSBuild 属性表示该属性本质上是“内部”的,在未来的版本中它可能意味着其他内容或根本不存在。因此,使用风险需您自担。

Option 3

话虽如此,您可以使用构建来打包您的网络。如果您想这样做,请使用以下参数。

/p:DeployOnBuild=true;DeployTarget=Package

当您在构建的放置文件夹中执行此操作时,您将像平常一样找到 _PublishedWebsites 文件夹,然后在该文件夹内将有一个文件夹 {ProjectName}_Package,其中 {ProjectName} 是项目的名称。该文件夹将包含包、.cmd 文件、参数文件和其他几个文件。您可以使用这些文件来部署您的网络。

我希望这不是信息过载。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

团队构建:使用 MSDeploy 本地发布 的相关文章

随机推荐