Недавно я добавил ссылку на службу WCF в мою программу. Когда я выполняю чистую установку этой программы, кажется, что все работает, как ожидалось. Но когда я устанавливаю программу на клиент, на котором уже установлена предыдущая версия (без новой ссылки на службу), я получаю исключение, сообщающее, что конечная точка по умолчанию для этой конкретной службы не найдена.
Похоже, что appname.exe.config не обновляется с новыми настройками конечной точки. Есть ли какая-либо причина для этого, и как я могу заставить установщик перезаписать файл конфигурации? Я использую проект установщика Visual Studio 2008 по умолчанию, в котором для параметра RemovePreviousVersions установлено значение True.
Обновление:
Моя программа шифрует раздел настроек после первого запуска с помощью следующего кода
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
ConfigurationSection section = config.GetSection(sectionKey);
if (section != null)
{
if (!section.SectionInformation.IsProtected)
{
if (!section.ElementInformation.IsLocked)
{
section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
section.SectionInformation.ForceSave = true;
config.Save(ConfigurationSaveMode.Full);
}
}
}
Когда я не запускаю программу перед установкой новой версии, app.config обновляется.