需要有关工件路径中的Web配置转换的帮助

时间:2012-06-21 13:09:51

标签: msbuild teamcity transform msdeploy

我正在尝试配置不同的工件路径。 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配置。但它只是改变实际包装时指定的那个。

任何想法如何在所有包中都改变了网络配置。

3 个答案:

答案 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%\包

Troy Hunter -You're deploying it wrong! TeamCity, Subversion & Web Deploy part 5: Web Deploy with TeamCity

答案 2 :(得分:0)

无论如何,工件路径都不会影响构建\包装过程。它们只是提供了在构建之后保留一些文件\文件夹以供进一步访问的能力。

如果要生成3个不同的包,则需要在配置中指定3个相应的构建步骤,并删除'%env.Configuration%'。