繁体   English   中英

在Visual Studio中为C#项目管理多个配置文件

[英]Managing multiple configuration files in Visual Studio for a C# project

我了解到,构建应该非常简单,并且需要更少的人工干预。 在我的情况下,我有3个环境,DEV(开发版本),SIT(STG集成测试)和UAT(用户接受测试)。 所有这些环境都具有不同的数据库连接详细信息和其他设置(例如日志记录)。

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

问题

1-从VS进行构建时,是否仍要指定环境名称。 这样就可以使用该环境的配置文件。

2-还有哪些其他方法将有助于减少人为干预建筑?

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

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连接到服务器上并再次调整配置文件。

您可以在codeplex.com上查看EnvRide工具 其目的恰恰是使自动管理多个配置文件变得更加容易。

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

在构建后事件中,您可以基于$(ProjectName)宏告诉项目名称。 所以你可以做类似的事情

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

最好使这些项目将大部分实际工作(编译)推迟到单个项目中,这样您就不必在多个项目中保持最新设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM