我正在尝试配置不同的工件路径。 e.g
在teamcity的一般设置中,我指定了以下工件路径:
testing\obj\Deploy-Dev\package
testing\obj\Deploy-Test\package
testing\obj\Deploy-Live\package
但是当我使用以下内容发布网站时:
/M /P:Configuration=%env.Configuration% /P:DeployOnBuild=True/P:DeployTarget=MSDeployPublish /P:MsDeployServiceUrl=%env.TargetServer%/MsDeployAgentService /P:DeployiisAppPath=%env.IISPath% /P:MSDeployPublishMethod=RemoteAgent /P:CreatePackageOnPublish=True /P:Username=%env.username% /P:Password=%env.password%
在此步骤中,我仅使用1个配置。我假设通过指定这些工件路径。它还将根据指定的配置转换Web配置。但它只是改变实际包装时指定的那个。
任何想法如何在所有包中都改变了网络配置。
答案 0 :(得分:1)
我不确定我是否完全理解你的问题,但这就是我认为你在问的问题。 “我如何创建一个包含所有web.config转换的Web包,以便我可以将同一个包发布到多个不同的环境中?”
不幸的是,打包的方式是使用正在构建的构建配置的web.config转换来转换web.config。然后转换后的web.config文件进入包。转换文件未打包。
我确实意识到创建单个包并将其发布到不同位置非常重要。我们无法在框中构建功能,但我创建了一个NuGet包,PackageWeb,在这种情况下可以提供帮助。我在http://sedodream.com/2012/03/14/PackageWebUpdatedAndVideoBelow.aspx发布了一段5分钟的视频,您可以查看一下。我相当肯定它会对你的场景有所帮助。仅供参考,包装网站的代码是https://github.com/sayedihashimi/package-web的开源代码。我们确实有一些known issues。如果您最终使用此功能,请告诉我。
答案 1 :(得分:0)
尝试为teamcity工件路径设置环境变量。
测试\ OBJ \%env.Configuration%\包
答案 2 :(得分:0)
无论如何,工件路径都不会影响构建\包装过程。它们只是提供了在构建之后保留一些文件\文件夹以供进一步访问的能力。
如果要生成3个不同的包,则需要在配置中指定3个相应的构建步骤,并删除'%env.Configuration%'。