У нас очень странная проблема с нашей надстройкой VSTO.
В нашей надстройке есть элементы управления метками, которые считывают текстовые значения меток из файла app.config и отображают текст из файла конфигурации впользователь:
<!-- app.config -->
<configuration>
<configSections>
...
</configSections>
<!-- start applicationSettings -->
<applicationSettings>
<OurVSTOAddIn.MySettings>
<setting name="ackMsg" serializeAs="String">
<value>Some text here that we want to display and change</value>
</setting>
...
<OurVSTOAddIn.MySettings>
</applicationSettings>
</configuration>
'vb.net code
objCheckDialog.lblAttachmentsMsg.Text = My.Settings("attachmentsAckMsg").ToString()
objCheckDialog.lblAttachmentsMsg.Visible = True
Недавно мы обновили файл app.config, чтобы заменить информацию на английском языке на Kanjii для наших конечных пользователей в Японии.
Когда мы перестраивали MSI и устанавливали его на нашем тестовом компьютере, надстройка не отображала Kanjii (хотя она правильно отображалась в процессе разработки).
Теперь нам интересно, читается ли файл конфигурации в каталоге установки вообще или информация кэшируется или надстройка читает из другого файла где-то.
Что дажеболее странным является то, что мы изменили другие значения в нашем файле app.config, которые используются в логике кода, и они, похоже, загружаются правильно.
В настоящее время мы используем Procmon, чтобы выяснить, какОднако файл конфигурации загружается при фильтрации по следующим параметрам:
- Имя процесса содержит Outlook
- Путь содержит «OurOutlookPlugInName»
Это приводит к перерасходу400 результатов, но мы не видим никакой обработки файла для нашего файла конфигурации, если я не отлаживаю код в Visual Studio.
На нашем установочном компьютере мы также удалили файл конфигурации из установочного каталога, думая, что это может бытьпонять, читает ли надстройка файл конфигурации из установочного каталога, но это никак не отразилось,и надстройка загружается нормально, отображая английский вместо Kanjii снова.
Все настройки конфигурации находятся на прикладном уровне.
Есть ли способ сообщить нам, где наша надстройказагружает наш файл конфигурации из?
Сделали ли мы что-то неправильное в нашей сборке MSI, которая помешала бы загрузке обновленного файла конфигурации?
ОБНОВЛЕНИЕ:
Я открыл файл DLLв каталоге установки C: \ Program Files (x86) \ OurVSTOAddIn, используя Telerik JustDecompile, чтобы увидеть, были ли записаны параметры конфигурации где-то в dll, и я вижу, что в OurVSTOAddIn-> My Settings там определенно есть DefaultSettingValues, как показано ниже:
Это имело бы смысл, поскольку это настройки области приложения, и это не позволило бы пользователю изменять настройки конфигурации.
Но яЯ думаю, что если мы будем использовать переменные Application Scoped, каждый раз нам нужно будет пересобрать MSI для выпуска, что не имеет смысла для меня, поскольку причина, по которой мы хотим использовать параметры конфигурации для проекта, заключается в том, что не нужно перестраивать дляизменения конфигурации.