Как мы можем определить, какой файл App.Config загружается в надстройку VSTO Outlook? - PullRequest
0 голосов
/ 05 апреля 2019

У нас очень странная проблема с нашей надстройкой 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, как показано ниже:

enter image description here

Это имело бы смысл, поскольку это настройки области приложения, и это не позволило бы пользователю изменять настройки конфигурации.

Но яЯ думаю, что если мы будем использовать переменные Application Scoped, каждый раз нам нужно будет пересобрать MSI для выпуска, что не имеет смысла для меня, поскольку причина, по которой мы хотим использовать параметры конфигурации для проекта, заключается в том, что не нужно перестраивать дляизменения конфигурации.

...