Как в настоящее время работают перенаправления привязки для плагинов ExcelDNA?

В настоящее время я застрял в аду зависимостей с плагином Excel DNA, который использует Azure SDK для взаимодействия с хранилищем BLOB-объектов.

Я столкнулся с проблемой, описанной здесь https://github.com/Azure/azure-sdk-for-net/issues/39798 , для которой предлагается включить автоматическое перенаправление привязки. Однако мне неясно, поддерживает ли это ExcelDNA, особенно учитывая открытую ошибку: https://github.com/Excel-DNA/ExcelDna/issues/241. Я попробовал обходной путь здесь, и это не помогло

Есть ли способ вручную настроить перенаправление привязки таким образом, чтобы плагин обязательно его подхватил, или теперь работают автоматические перенаправления привязки?

Сообщение об ошибке:

System.IO.FileLoadException
  HResult=0x80131040
  Message=Could not load file or assembly 'System.Diagnostics.DiagnosticSource, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
  Source=Azure.Identity
  StackTrace:
   at Azure.Core.Pipeline.DiagnosticScopeFactory..ctor(String clientNamespace, String resourceProviderNamespace, Boolean isActivityEnabled, Boolean suppressNestedClientActivities, Boolean isStable)
   at Azure.Core.Pipeline.ClientDiagnostics..ctor(ClientOptions options, Nullable`1 suppressNestedClientActivities)
   at Azure.Identity.CredentialPipeline..ctor(TokenCredentialOptions options)
   at Azure.Identity.CredentialPipeline.<>c.<.cctor>b__17_0()
   at System.Lazy`1.CreateValue()
   at System.Lazy`1.LazyInitValue()
   at Azure.Identity.CredentialPipeline.GetInstance(TokenCredentialOptions options, Boolean IsManagedIdentityCredential)
   at Azure.Identity.InteractiveBrowserCredential..ctor(String tenantId, String clientId, TokenCredentialOptions options, CredentialPipeline pipeline, MsalPublicClient client)
   at Azure.Identity.InteractiveBrowserCredential..ctor()
   at DataTool.SyncConfigFiles.<Sync>d__0.MoveNext() in C:\Repros\CT---DataTool\Data Tool\SyncConfigFiles.cs:line 38

Я считаю, что мне нужно перенаправление привязки к V6.0.1.0, которое упаковано в xll, но ничего из того, что я пытаюсь сделать, похоже, не помогает.

Я ожидал, что смогу включить автоматическое перенаправление привязки, как было рекомендовано, чтобы решить проблему в Azure SDK. Однако ExcelDNA, похоже, не поддерживает это, и проблема не исчезает.

Проверьте, подходит ли вам приведенное ниже решение?

Naveen Sharma 27.07.2024 10:58
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Есть ли способ вручную настроить перенаправление привязки таким образом, чтобы плагин обязательно его подхватил, или теперь работают автоматические перенаправления привязки?

В Excel-DNA автоматические перенаправления привязки не поддерживаются, необходимо вручную настроить перенаправления привязки в файле App.config или Web.config.

<configuration>
  <runtime>
    <assemblyBinding xmlns = "urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name = "System.Diagnostics.DiagnosticSource" publicKeyToken = "cc7b13ffcd2ddd51" culture = "neutral" />
        <bindingRedirect oldVersion = "0.0.0.0-6.0.1.0" newVersion = "6.0.1.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>
  • Эта конфигурация должна быть включена в окончательный файл .xll.config, который использует Excel-DNA.

Добавьте пользовательскую цель в файл .csproj, чтобы скопировать App.config в соответствующие файлы .xll.config.

<Target Name = "CopyAppConfig" AfterTargets = "ExcelDnaBuild">
  <Message Importance = "High" Text = "Copy $(TargetPath).config to $(TargetDir)MyAddIn-AddIn[64][-packed].xll.config" />
  <Copy SourceFiles = "$(TargetPath).config" DestinationFiles = "$(TargetDir)MyAddIn-AddIn.xll.config" />
  <Copy SourceFiles = "$(TargetPath).config" DestinationFiles = "$(TargetDir)MyAddIn-AddIn-packed.xll.config" />
  <Copy SourceFiles = "$(TargetPath).config" DestinationFiles = "$(TargetDir)MyAddIn-AddIn64.xll.config" />
  <Copy SourceFiles = "$(TargetPath).config" DestinationFiles = "$(TargetDir)MyAddIn-AddIn64-packed.xll.config" />
</Target>

Образец данных:

Теперь он может успешно взаимодействовать с хранилищем BLOB-объектов.

Другие вопросы по теме