0

我们使用的是 TFS 2010。在我们的项目中,我们有多个配置文件。特定构建需要每个配置文件。

示例:项目 XYZ 包含三个配置文件,比如说 DEV-CONFING、QA-CONFIG 和 PROD-CONFIG 文件。

现在我们想找到一种方法,在构建过程中,构建过程包含正确的配置文件并排除其余的。

例子:

  1. Build for Dev 应该只拾取和复制 DEV-CONFIG 文件(并排除所有其他配置文件)

  2. Build for QA 应该只拾取和复制 QA-CONFIG 文件(并排除所有其他配置文件)

  3. 为生产构建应该只拾取和复制 PROD-CONFIG 文件(并排除所有其他配置文件)

是否可以更改单个构建定义的设置并解决此问题?

VS 2010 和 TFS 2010 中这个问题的最佳解决方案是什么?

请列出所有必需的步骤并尽可能准确,因为我是 TFS 2010 的新手,对整个过程没有太多经验。

4

2 回答 2

1

“VS2010 中的 Web Config Transformations”解决了在编译期间修改 web.config 的问题。有些人可能希望在部署时而不是编译时修改 web.config(如我),这样我们在从一个环境移动到另一个环境时不必重新编译代码,在这种情况下,您可以使用“Web 部署参数”

你可以阅读更多关于它的信息:

http://www.asp.net/mvc/tutorials/deployment/visual-studio-web-deployment/web-config-transformations

网络配置转换语法:

http://msdn.microsoft.com/en-us/library/dd465326.aspx

@user2585405 对您上面的评论“但我的情况下的所有配置都是针对同一模式“发布模式”。决定应该取决于构建定义。所以当我为 DEV 使用构建定义时,DEV 的配置应该是自动的选择或对于 QA 构建定义,应自动选择相应的 QA 配置。”

目前您是否只有一种配置并不重要。您可以添加所需的配置,右键单击解决方案并选择配置管理器。现在添加一个新配置,比如“Dev”(它可以在“Release/Debug”中,也可以选择平台“x86,any cpu etc”)。现在为 QA 和 PROD 添加另一个配置。然后回到您的 web.config 并右键单击并选择“添加 web 配置转换”。

现在您应该能够看到 web.Dev.Config、web.QA.config 等。根 web.config 将具有所有公共属性,而 DEV/QA/Prod 特定配置将仅具有增量更改(您有定义这些条目),这些条目特定于该配置(比如说连接字符串)。编译时,您可以在构建定义中选择要编译的配置(Dev、QA、prod),您不必保留多个构建定义。一个就够了!编译完成后,根 web.config 将被替换为特定于连接字符串部分的配置的值。

希望这可以帮助!

于 2013-07-16T14:32:08.810 回答
0

是的,这可能。您可以将配置文件保存在不同的模式,例如:您可以将配置文件保存在发布模式调试模式、发布模式和所有人使用的通用配置文件中。

因此,当您在调试模式下构建解决方案时,将使用调试模式配置文件,而在发布模式下,将使用发布模式配置文件。

为了更清楚起见,以 web config 为例,当您展开 web config 选项卡时,您将看到两个处于不同模式的配置文件。

于 2013-07-16T07:25:06.953 回答