[英]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.