我们正在使用TFS 2010.在我们的项目中,我们有多个配置文件。特定构建需要每个配置文件。
示例:项目XYZ包括三个配置文件,例如DEV-CONFING,QA-CONFIG和PROD-CONFIG文件。
现在我们想要找到一种方法,在构建过程中,构建过程包括正确的配置文件,并排除其余部分。
示例:
Build for Dev应该仅拾取和复制DEV-CONFIG文件(并排除所有其他配置文件)
Build for QA应仅拾取和复制QA-CONFIG文件(并排除所有其他配置文件)
生产构建应仅拾取和复制PROD-CONFIG文件(并排除所有其他配置文件)
是否可以更改单个构建定义的设置并解决此问题?
VS 2010和TFS 2010中此问题的最佳解决方案是什么?
请列出所有必需的步骤,并尽可能准确,因为我是TFS 2010的新手,对整个过程没有多少经验。
答案 0 :(得分:1)
“VS2010中的Web配置转换”解决了在编译期间修改web.config的问题。有些人可能希望在部署时修改web.config而不是编译时间(像我一样),这样我们就不必在从一个环境移动到另一个环境时重新编译代码,在这种情况下你可以使用“Web部署”参数“
您可以在以下网址了解更多信息:
http://www.asp.net/mvc/tutorials/deployment/visual-studio-web-deployment/web-config-transformations
web配置转换语法:
http://msdn.microsoft.com/en-us/library/dd465326.aspx
@ user2585405上面的评论“但我的情况下的所有配置都是针对相同的模式”发布模式“。决定应该继续构建定义。所以当我使用DEV的构建定义时,DEV的配置应自动选择或QA构建定义,应自动选择相应的QA配置。“
当前您是否只有一个配置无关紧要。您可以添加所需的配置,右键单击解决方案并选择配置管理器。现在添加一个新的配置说“Dev”(它可以在“Release / Debug”中,也可以选择平台“x86,任何cpu等”)。现在为QA和PROD添加另一个配置。然后返回到web.config并右键单击并选择“添加Web配置转换”。
现在您应该能够看到web.Dev.Config,web.QA.config等。根web.config将具有所有常见属性,并且DEV / QA / Prod特定配置将仅具有增量更改(您必须定义这些条目)特定于该配置(假设为connectionstring)。编译时,在构建定义中,您可以选择要编译的配置(Dev,QA,prod),以保持多个构建定义。只要一个就足够了!编译完成后,root web.config将替换为特定于connectionstring部分的配置的值。
希望这有帮助!
答案 1 :(得分:0)
是的,这可能。您可以将配置文件保持在不同的模式,例如: 您可以在发布模式调试模式,发布模式和所有人使用的公共配置文件中配置文件。
因此,当您在调试模式下构建解决方案时,将使用调试模式配置文件,当处于释放模式时,将使用释放模式配置文件。
为了进一步说明,请在展开Web配置选项卡时以Web配置为例,您将看到不同模式下的两个配置文件。