В тех случаях, когда не имеет значения, могут ли разработчики видеть производственные учетные данные, вы можете использовать встроенные преобразования конфигурации Visual Studio 10.Если это то, что вам нужно, выполните следующие действия:
1. Перейдите в папку проекта Azure в проводнике файлов
2. Создайте копию ServiceConfiguration.cscfg
3. Переименуйте копиюв ServiceConfiguration.Base.cscfg
4. Для каждой конфигурации сборки (например, Dev, Staging, Production) создайте ServiceConfiguration.Файл .cscfg.В этих файлах вы можете использовать обычный синтаксис преобразования конфигурации
5. Откройте файл .ccproj в текстовом редакторе
6. Найдите следующий узел,
<ItemGroup>
<ServiceDefinition Include="ServiceDefinition.csdef" />
<ServiceConfiguration Include="ServiceConfiguration.cscfg" />
</ItemGroup>
и замените его следующим (вам нужно будет отредактировать этот блок в соответствии с вашими конфигурациями сборки):
<ItemGroup>
<ServiceDefinition Include="ServiceDefinition.csdef" />
<ServiceConfiguration Include="ServiceConfiguration.cscfg" />
<None Include="ServiceConfiguration.Base.cscfg">
<DependentUpon>ServiceConfiguration.cscfg</DependentUpon>
</None>
<None Include="ServiceConfiguration.Dev.cscfg">
<DependentUpon>ServiceConfiguration.cscfg</DependentUpon>
</None>
<None Include="ServiceConfiguration.Staging.cscfg">
<DependentUpon>ServiceConfiguration.cscfg</DependentUpon>
</None>
<None Include="ServiceConfiguration.Production.cscfg">
<DependentUpon>ServiceConfiguration.cscfg</DependentUpon>
</None>
</ItemGroup>
7.Добавьте следующее в конец файла .ccproj, чуть выше </Project>
:
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets" />
<Target Name="BeforeBuild">
<TransformXml Source="ServiceConfiguration.Base.cscfg" Transform="ServiceConfiguration.$(Configuration).cscfg" Destination="ServiceConfiguration.cscfg" />
</Target>
8.Если вы используете CI-сервер, на котором не установлена Visual Studio 10, вам, вероятно, придется скопировать C: \ Program Files \ MSBuild \ Microsoft \ VisualStudio \ v10Папка .0 \ Web и ее содержимое с компьютера разработчика на сервер.
Обновление: Если @SolarSteve отмечено , возможно, вам придется добавить пространство имен в свойServiceConfiguration. *. Cscfg файлы.Вот пример ServiceConfiguration.Base.cscfg:
<sc:ServiceConfiguration serviceName="MyServiceName" osFamily="1" osVersion="*" xmlns:sc="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<sc:Role name="MyRoleName">
<sc:Instances count="1" />
<sc:ConfigurationSettings>
<sc:Setting name="DataConnectionString" value="xxx" />
</sc:ConfigurationSettings>
</sc:Role>
</sc:ServiceConfiguration>