c# - 如何改变不同工作地点的连接字符串

标签 c# sql svn settings connection-string

我正在处理一个 C# 4.0、WPF 4.0、SQL 2008 项目,我在家里和办公室工作。我只是根据其他问题中的建议使用 Visual SVN 设置 SubVersion。我遇到的问题是每个位置的数据库连接字符串都不同。

在家里,我的开发系统上有数据库,在办公室里,数据库在我们的服务器上。两者都没有暴露在互联网上,所以我必须同时使用两者。有没有一种优雅的方式来自动选择正确的?

更新

我一直遇到这方面的问题,我试图在学习版本控制和完成我的项目工作之间取得平衡。我一直在阅读 Subversion 这本书,对它涵盖的内容很满意。我的一个实际问题是处理需要在开发环境之间适本地变化的文件。我可以轻松地编写代码来解决这个问题,但这对我来说似乎有点古怪。我确实看到了不止几篇关于 svn:exclude 有多么古怪的文章,在我看来,在家里行得通的东西在工作中会引起问题,反之亦然。

也许我只是不知道正确的答案,所以请给我指出正确的方向(我不需要你为我做)或者投票选出现有的最佳答案,我会继续我的研究.

非常感谢

最佳答案

如果你真的想完全自动化,你可以这样做:

首先,在源代码控制中存储不同环境的设置,而不是实际的配置文件。例如:

configfiles\app.config.mikeb_home
configfiles\app.config.local
configfiles\app.config.development
configfiles\app.config.staging
configfiles\app.config.production

然后在您的构建配置中,您可以添加一个步骤来将正确的配置文件复制到您的根 app.config。例如。使用基于“环境”参数(计算机名、用户名等)的“预构建事件”(命令行脚本)。您可能可以通过在 .csproj 文件中添加一些 msbuild 命令来实现相同的目的。

然而,这一切真的值得吗? TortoiseSVN 有一个称为“提交时忽略”列表的功能,它可以帮助您防止意外提交不应提交的本地更改文件(在提交对话框中,右键单击该文件 => 移至更改列表 -> 提交时忽略)。如果您确实需要更改 .config 文件中的其他内容,可能会有点烦人,但仍然如此。

关于c# - 如何改变不同工作地点的连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2224374/

相关文章:

svn - 如何仅在文本文件上递归应用 svn 'eol-style' 属性?

c# - 为 ToolstripLabel 设置 UseMnemonic

.net - 为 POINT postgresql 数据类型(或非原始类似 nhibernate 类型的任何 COLUMN)实现新的 NHibernate 类型

c# - 在任务管理器中更改我的程序名称

mysql - 重置 auto_increment 是否会重新订购 ID?

Mysql 通过使用用户付款表的连接更新约 10 万用户

svn - 如何从 Subversion 中删除敏感信息?

svn - Subversion中如何区分普通commit和merge?

c# - 从 GMT 到本地的时区转换

c# - C# 的 Python 风格类方法?