我们有许多云部署项目用于云服务。例如:
\-Project.Cloud.UAT
\-ServiceConfiguration.Cloud.cscfg
\-ServiceDefinition.csdef
\-Project.Cloud.Production
\-ServiceConfiguration.Cloud.cscfg
\-ServiceDefinition.csdef诸若此类。每个cscfg文件都具有特定环境的数据库连接字符串。
在云项目的部署过程中,我们运行一个powershell脚本,它启动azure来部署和启动云服务。
我现在想添加一个步骤,也可以在该环境数据库上运行FluentMigrator。我以前使用过FM,并将其指向转换后的Web.Config以获得一个SQL连接字符串,但它似乎无法工作。
有人可以用powershell脚本指出正确的方向,打开CSCFG文件,手动将ConnectionString解析成ps $var,然后直接传递给fluent migrator。
发布于 2014-04-08 11:05:29
我假设您将连接字符串存储在ConfigurationSettings部分中。下面是一个PowerShell示例,它将提取文件,并为每个角色提取开关语句中指定的特定设置。您可能不需要开关语句,如果您有一个连接字符串,您要拉。也可能有一种更好的方法来处理设置本身,但这确实给出了手动从cscfg文件中提取特定设置的示例。
$deploymentCloudConfigPath = "somePathToTheFile\ServiceConfiguration.Cloud.cscfg"
# Update the cscfg file to include the correct settings.
[Xml]$cscfgXml = Get-Content $deploymentCloudConfigPath
Foreach ($role in $cscfgXml.ServiceConfiguration.Role)
{
Foreach ($setting in $role.ConfigurationSettings.Setting)
{
Switch ($setting.name)
{
"CustomSettingsName.StorageAccount" {$connString = $setting.value} #Storage
"Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" {$connString = $setting.value} #Diagnostics
}
#Here you can do whatever with the value.
$connString
}
} https://stackoverflow.com/questions/22932743
复制相似问题