Диагностический дисплей появляется при открытии надстройки

#c# #excel #excel-dna

#c# #excel #excel-днк

Вопрос:

У нас есть надстройка к Excel, написанная на C #. Мы также используем Excel-DNA. Недавно мы получили это окно при запуске надстройки введите описание изображения здесь

Есть идеи, что это за окно и как мы можем его использовать?

Ответ №1:

По умолчанию Excel-DNA попытается зарегистрировать все public static методы в общедоступных типах в сборках, перечисленных как <ExternalLibrary ...> в файле .dna.

Для вашей надстройки, похоже, существует более одной такой функции под названием ‘Modulus’, которую Excel-DNA пытается зарегистрировать. Ошибка возникает из-за этого дублирования (одна регистрация перезаписывается другой).

У вас есть несколько способов обойти это:

  • Убедитесь, что у вас зарегистрирована только одна функция ‘Modulus’, либо сделав один из методов общедоступным, либо включив ‘ExplictExports= true’ в вашем файле .dna и пометив все функции ExcelFunction атрибутами.
  • Убедитесь, что у вас нет дополнительных библиотек, настроенных как <ExternalLibrary> в файле .dna — дополнительные сборки, которые вы хотите упаковать в один файл .xll следует добавить в виде <Reference> тегов — они не проверяются на наличие функций и не регистрируются в Excel.
  • Вы можете контролировать, как работает ведение журнала, и, таким образом, предотвратить отображение окна ошибки, настроив параметры ведения журнала в файле .xll.config — см. https://github.com/Excel-DNA/ExcelDna/wiki/Diagnostic-Logging.

Ответ №2:

Ответ от @Govert полезен, но если вы не хотите исправлять ошибки и предупреждения в этом окне и не хотите их видеть, вам нужно вставить эту часть кода в свой файл app.config:

 <!--Switch off the diagnostic -->
<system.diagnostics>
   <sources>
      <source name="ExcelDna.Integration" switchValue="Off"></source>
   </sources>
</system.diagnostics>
  

Комментарии:

1. Вас также может заинтересовать перенаправление сообщений на другой регистратор и больший контроль над тем, как они интерпретируются (ошибка, предупреждение, информация и т.д.). Смотрите ExcelDNA. Диагностика. Serilog