我正在开发云应用程序。当我在我的计算机上测试应用程序时,我希望在ServiceConfiguration.cscfg中将我的连接字符串设置如下:
<Setting name="DataConnectionString" value="UseDevelopmentStorage=true" />
当我发布到云时,我需要将其设置如下:
<Setting name="DataConnectionString" value="DefaultEndpointsProtocol=https;AccountName=xxxx;AccountKey=yyy" />
我一直在从一个环境转到另一个环境,并且不断更改DataConnectionString。
有没有办法让我自动化?我环顾四周,看不到任何例子,但我确信其他一些人和我有同样的问题。
谢谢,
南西
答案 0 :(得分:4)
我在这里回答了类似的问题:
答案 1 :(得分:2)
虽然Igorek的方法非常有效,但我们更喜欢在我们的CI服务器上进行这种转换,它也负责自动部署。主要原因是限制对敏感数据的访问,因为只有有限数量的可信开发人员可以访问CI服务器。此外,它有助于保持我们的代码更清洁,因为它不包括冗余配置项目。在我们的例子中,我们使用Hudson-CI(Jenkins-CI)和MSBuild.ExtensionPack.FileSystem.File(替换动作)来转换配置文件。
答案 2 :(得分:0)
在获取连接字符串的代码部分中,您可以使用#if(DEGUG)
预处理程序指令,以便根据编译是否Debug
或if(Debugger.IsAttached)
来使用或不使用某些内容。 1}}(MSDN)以了解调试器是否已附加。
答案 3 :(得分:0)
如果要使用Visual Studio配置转换,请参阅my answer以查找类似的问题。
答案 4 :(得分:0)
您可以在Azure SDK 1.7 http://msdn.microsoft.com/en-us/LIBRARY/microsoft.windowsazure.cloudconfigurationmanager
中使用CloudConfigurationManager首先查看ServiceConfiguration.cscfg,例如ServiceConfiguration.Cloud.cscfg用于配置设置。如果不存在,则会回退到web.config和app.config
例如
CloudConfigurationManager.GetSetting("StorageConnectionString")
将在相应的cscfgfile中查找StorageConnectionString设置,然后它将搜索web.config,然后搜索app.config。