В настоящее время я могу легко установить Web.config, преобразовывают на основе конфигурации сборки, например, использования connectionString=server;..
для Debug
и connectionString=./SQLExpress;..
для Release
.
Но действительно ли возможно сделать, некоторое преобразование Web.config, базирующееся в сети, публикует профиль? Т.е. используйте connectionString=server1;..
для профиля Server1
и connectionString=server2;..
для Server2
?
Я считаю, что профили публикации не зависят от профилей сборки, что немного обидно, поскольку вы можете легко случайно развернуть конфигурацию отладки на своих производственных серверах.
Однако, если вы используете MSDeploy, есть способы изменить там web.config. См. MSDeploy - Изменение параметра строки подключения после развертывания пакета для получения дополнительных сведений.
Это может быть немного другой способ.
На производственных серверах создайте фиктивную запись для customdb в файле c: \ windows \ system32 \ drivers \ etc \ hosts на каждой производственной машине. Каждый указывает на базу данных, которую вы хотите использовать на этом компьютере. Тогда вам нужно только указать на connectionString = customdb; для всех ваших производственных серверов.
Единственным недостатком этого будет то, что вам потребуется доступ к файлу hosts, и вам потребуется использовать базу данных.
Надеюсь, это поможет
Мы храним всю конфигурацию машины / профиля в отдельных файлах конфигурации, а затем используем configSource, чтобы включить их так ...
<connectionStrings configSource="cstrings.config"/>
Таким образом, Web.config является таким же и не требует никаких преобразований. Мы делаем это для строк подключения, настроек smtp и настроек приложения.
Мы контролируем версии Web.config и "машинно-зависимых" файлов, таких как cstrings.config.production, cstrings.config.staging и т. Д.
Имея такую структуру, легко создавать изображения для различных профилей. У нас есть сценарии развертывания на каждой машине, которые считывают переменную среды и развертывают ее соответствующим образом. Например, сценарий сборки промежуточного сервера копирует cstrings.config.staging в cstrings.config и т. Д.