处理集中配置,应用程序设置和连接字符串,用于多个解决方案,同时还切换到从命令行使用msdeploy来部署Web应用程序.理想情况下,我希望构建一次包,并在将包部署到每个环境时获取最新配置.我需要一些关于最佳方法的建议.
谢谢
Say*_*imi 19
我可以对选项#1 /#3进行详细说明并进行比较.之前的回复并不准确说明你必须使用PackageWeb多次构建,你只需要构建一次.
在此方法中,您将在Web项目中创建一个parameters.xml文件,该文件将声明其他Web Deploy参数.
构建Web Deploy包时,会在包中创建在parameters.xml中声明的参数.创建此Web部署包时,将根据构建配置(现在可能还有特定于配置文件的转换)转换web.config文件.
您可以使用该包和setparameters.xml来发布指定Web Deploy参数值的包.您可以创建不同的setparameters.xml文件,并将其与相同的包一起使用以发布到多个目标.要使用此技术发布,您可以使用VS生成的deploy.cmd或使用正确的参数集调用msdeploy.exe.
PackageWeb延伸封装过程,以便在创建Web部署包中的web.config变换被包含在包中,以及能够执行所述变换的组件.
除此之外,在创建Web部署包时,还会生成publish-interactive.ps1文件.您可以使用此文件发布您的包.它会提示你; 要应用的web.config转换,Web部署参数值以及Web部署端点信息本身.当您运行发布时,您提供的值将保存到publish-configuration.ps1.readme.您可以删除.readme和publish-interactive.ps1将使用该文件中的值来自动化发布.您还可以指定要用于设置的文件.
如果在VS创建Web部署包时创建了parameters.xml文件,则会导致Web部署参数包含在包中.PackageWeb会选择那些并提示你这些.
那么这些方法之间的区别是什么?
使用选项#1,进入包的web.config已经被转换.您将无法再次转换文件.使用这两种方法,您可以指定Web部署参数值,以便满足您的需求.如果要将大块XML从一个env修改为另一个env,那么web.config转换可能是有益的.所以PackageWeb可能是更好的选择.
使用选项#1,您必须手动创建SetParameters.xml文件.使用PackageWeb,您可以使用WhatIf选项运行该过程.系统将提示您输入值,它将为您创建设置文件.
您可以轻松地自动执行这两种方法.PackageWeb基本上构建在parameters.xml/setparameters.xml技术之上,并提供了一套超级功能.
如果你希望保持尽可能简单的运动部件,我会建议选项#1#最小,因为如果需要的话你可以直接打电话msdeploy.exe.
如果您想简化发布的自动化,并且您更喜欢PowerShell到标准命令提示符,那么请尝试使用PackageWeb.
我在上PackageWeb有5分钟的视频http://sedodream.com/2012/03/14/PackageWebUpdatedAndVideoBelow.aspx.如果您要发布Web部署包,我建议您尝试一下.如果它不符合您的需求,请告诉我,因为我们可能会以更正式的方式使用我们在PackageWeb中学到的东西.
我们使用选项#1,它运行得很好.我们使用这种方法部署到大约30-40个站点和应用程序.
我认为选项#2会给您或开发人员带来麻烦.您必须确保在部署时从配置中删除带有设置的部分,或者将它们锁定在服务器上,以便本地配置无法添加它们.
对于选项#3,您将不得不进行多次构建以获取转换后的配置文件.如果要部署大量站点,这也不太可行.
选项#4可以工作,但你可能会遇到限制.它要么是整个部分都在一个单独的文件中,要么全部在主文件中,所以中间没有.
选项#5看起来很有趣,但我没有使用它,所以我不能说太多.
我们使用#5并且效果很好.使用MSBuild发布配置文件提供了一堆灵活性(Items特别有用).
在我们的部署管道中,只有网站包,构建/部署目标和发布配置文件可用于部署阶段.源代码(包括项目文件)仅由构建/测试阶段使用.
仅供参考,我们专门使用发布配置文件,因为您将很快遇到保持特定于环境的服务器详细信息/凭据,跳过子句和参数值的问题.WPP /发布配置文件跟踪文件中的所有这些内容pubxml,并且MSBuild的功能允许一些不错的常规配置"帮助程序"用于常见但"嘈杂"的任务.
| 归档时间: |
|
| 查看次数: |
21212 次 |
| 最近记录: |