首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Powershell为Fluent Migrator解析Azure云服务cscfg文件

使用Powershell为Fluent Migrator解析Azure云服务cscfg文件
EN

Stack Overflow用户
提问于 2014-04-08 09:20:25
回答 1查看 1.2K关注 0票数 0

我们有许多云部署项目用于云服务。例如:

代码语言:javascript
复制
\-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。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-08 11:05:29

我假设您将连接字符串存储在ConfigurationSettings部分中。下面是一个PowerShell示例,它将提取文件,并为每个角色提取开关语句中指定的特定设置。您可能不需要开关语句,如果您有一个连接字符串,您要拉。也可能有一种更好的方法来处理设置本身,但这确实给出了手动从cscfg文件中提取特定设置的示例。

代码语言:javascript
复制
$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
    } 
} 
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22932743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档