【发布时间】:2015-03-06 10:54:49
【问题描述】:
我在所有 C: 驱动器的 *.config 文件中有许多连接字符串。我使用的是 Windows 8、VS 2012、TFS 2008。
我在源代码控制 TFS 中有一些 *.config 文件,工作区映射到本地文件夹 C:\TFS。
我在另一个文件夹(C:\Tests、C:\Windows、C:\Temp 等)中有一些来自 Source Control TFS 的 *.config 文件。
我想替换所有 *.config 文件中的密码。
使用像 Powershell 或 bat/cmd 文件这样的脚本可能会更好。
<add name="ConnectionStrings.Oracle.ConnectionLog" connectionString="DATA SOURCE=xxx;PASSWORD=AAAAAAA;PERSIST SECURITY INFO=True;USER ID=MYUSER"
providerName="Oracle.DataAccess.Client" />
我用
var configs = Directory.GetFiles(@"C:\", "*.config");
configs.ForEach( f => ReplacePasswordOfFile(f));
如果 *.config 文件在 TFS 之外,我想要:
- 删除文件中的 ReadOnly 属性(如果文件有)
- 使用
string.Replace和File.WriteAllText修改密码
如果 *.config 文件在 TFS 中,我想要:
- 获取最新版本的文件
- 签出文件
- 使用
string.Replace和File.WriteAllText修改密码 - 签入文件
我如何知道配置文件是否在 Source Control TFS 中? 关于这个过程有什么建议吗?
【问题讨论】:
标签: c# powershell replace tfs