从开发过渡到云时从一个连接字符串切换到另一个连接字符串
我正在研究云应用程序。当我考出来我想有作为ServiceConfiguration.cscfg如下我的连接字符串设置我的计算机上的应用:从开发过渡到云时从一个连接字符串切换到另一个连接字符串
<Setting name="DataConnectionString" value="UseDevelopmentStorage=true" />
当我发布到云中,我需要有它设置如下:
<Setting name="DataConnectionString" value="DefaultEndpointsProtocol=https;AccountName=xxxx;AccountKey=yyy" />
我继续从一个环境到另一个环境,并不断改变DataConnectionString。
有没有一种方法可以自动执行此操作?我环顾四周,看不到任何例子,但我确定有些人和我有同样的问题。
感谢,
南希
虽然Igorek的做法完美的作品,我们更愿意作出这样的转变我们的CI服务器上这也是自动部署的责任。主要原因是限制对敏感数据的访问,因为只有有限数量的受信任开发人员可以访问CI服务器。此外,它有助于保持我们的代码更清洁,因为它不包含冗余配置项目。在我们的例子中,我们使用Hudson-CI(Jenkins-CI)和MSBuild.ExtensionPack.FileSystem.File(替换动作)来转换配置文件。
在此获取连接字符串代码的一部分,你可以使用#if(DEGUG)
预处理指令才能使用的东西,或者不考虑如果编译Debug
与否,或if(Debugger.IsAttached)
(MSDN)为了知道调试器已连接。
可以在Azure的SDK使用CloudConfigurationManager 1.7 http://msdn.microsoft.com/en-us/LIBRARY/microsoft.windowsazure.cloudconfigurationmanager
这将启动通过查看ServiceConfiguration.cscfg例如ServiceConfiguration.Cloud.cscfg进行配置设置。如果它不存在它回落到web.config中和的app.config
例如
CloudConfigurationManager.GetSetting("StorageConnectionString")
将目光在StorageConnectionString设置适当的cscfgfile,那么它会搜索web.config中,然后的app.config。