2009-06-18 95 views
1

我已经了解到构建应该非常直接,并且需要较少的人为干预。在我的情况下,我有3个环境,DEV(开发版),SIT(STG集成测试)和UAT(用户验收测试)。所有这些环境都有不同的数据库连接细节和其他设置(如日志记录)。在Visual Studio中管理C#项目中的多个配置文件

当前需要将应用程序部署到SIT环境时,我需要做的是构建应用程序。将其安装在目标环境中,并手动修改配置文件。这是有问题的,因为我可能会错过一些条目。当配置文件很大时,事情会变得更糟。

问题

1 - 反正是有指定使得从VS.构建时环境名称这样就可以使用该环境的配置文件。

2 - 有哪些其他方法可以帮助减少人员对建筑物的干预?

3 - 假设我的应用程序名称是“Foo”。我在解决方案中有一个包项目,它将创建可安装的包。无论如何要根据环境指定产品标题吗?我的意思是如果选择了SIT,安装时的产品名称将是“Foo-SIT”。我想这会避免混淆版本1的安装环境。如果有任何更好的选择,我会很乐意听到。

回答

1

处理此问题的一种方法是创建3个项目并将环境放入新项目的名称中。然后使用生成后事件根据项目名称复制正确的文件。

在后期构建事件中,您可以根据$(ProjectName)宏指示项目名称。所以,你可以做这样的事情

IF "$(ProjectName)"="devproject" (
    copy ... 
    copy ... 
) 

这是最好的,使这些项目推迟了大部分工作(编译)到单个项目,这样你就不必保持设置多达跨多个项目的日期。

2

2 - 你是绝对正确的 - 你应该尝试尽可能地自动化你的构建和部署过程。你最好的选择是使用NAnt之类的东西建立一个自动的构建/部署脚本。您的脚本可以有针对您的每个环境的目标,例如

<project name="MyApp" xmlns="http://nant.sf.net/release/0.85/nant.xsd"> 
    <target name="DEV"> 
     <!-- execute any tasks needed to build the app, such as msbuild(1) --> 

     <!-- execute any tasks needed to build the tweak the config files, such as xmlpeek/xmlpoke(2) --> 

     <!-- execute any tasks needed to copy the now-built and configured project output the tweak the destination server, such as copy(3)--> 
    </target> 

    <target name="SIT">...</target> 
    <target name="UAT">...</target> 

</project> 

如果您对NAnt不熟悉,那么启动并运行并编写脚本需要不到一天的时间。回报是立竿见影并持久的,因为您永远不必将VNC放入服务器并再次调整配置文件。

相关问题