0

我正在尝试明智地设置不同的工件路径配置。例如

在 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 配置。但它只是在实际包装时转换指定的那个。

知道如何在所有包中转换 Web 配置。

4

3 回答 3

1

我不确定我是否完全理解您的问题,但这是我认为您要问的问题。“如何创建一个包含所有 web.config 转换所需的 web 包,以便我可以将同一个包发布到多个不同的环境?”

不幸的是,打包工作的方式是使用正在构建的构建配置的 web.config 转换来转换 web.config。然后转换后的 web.config 文件将其放入包中。转换文件未打包。

我确实意识到创建单个包并将其发布到不同位置很重要。我们无法将这些功能构建到盒子中,但我创建了一个 NuGet 包PackageWeb,它可以在这种情况下提供帮助。我在http://sedodream.com/2012/03/14/PackageWebUpdatedAndVideoBelow.aspx上发布了一个 5 分钟的视频,您可以看看。我相当肯定它会对您的情况有所帮助。仅供参考,package-web 的代码在https://github.com/sayedihashimi/package-web是开源的。我们确实有一些已知问题。如果你最终使用这个,请告诉我。

于 2012-06-22T02:46:27.010 回答
0

尝试为您的 teamcity 工件路径设置环境变量。

测试\obj\%env.Configuration%\package

特洛伊猎人 - 你部署错了!TeamCity、Subversion 和 Web 部署第 5 部分:使用 TeamCity 进行 Web 部署

于 2012-06-21T14:11:51.187 回答
0

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

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

于 2012-06-21T19:54:45.530 回答