Как распространять приложение .NET 9 с помощью Microsoft.Office.Interop.Excel?C#

Место общения программистов C#
Anonymous
Как распространять приложение .NET 9 с помощью Microsoft.Office.Interop.Excel?

Сообщение Anonymous »

Недавно я перенес большую базу кода с .NET Framework 4.7.2 на .NET 9. В этой базе кода есть несколько проектов C++/CLI, которые ссылаются на пакет Microsoft.Office.Interop.Excel Nuget для создания файлов Excel.
При выполнении из локальной компиляции все работает нормально. Однако при развертывании на клиентском компьютере мы не включаем office.dll и Microsoft.Office.Interop.Excel.dll, так как я считаю, что нам не разрешено это делать по закону. Возвращаясь к .NET Framework 4.7.2, я считаю, что это сработало благодаря GAC, который позволял приложению находить эти DLL в установке Office на клиентском компьютере. Но теперь, в .NET 9, мы получаем исключение, сообщающее, что DLL не может быть найдена: не удалось загрузить файл или сборку «Microsoft.Office.Interop.Excel, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c». Система не может найти указанный файл.
Что я пробовал до сих пор:
  • Внедрение типов взаимодействия в сборку. Я считаю, что это невозможно с C++/CLI. Поэтому вместо этого я создал проект C#, ссылающийся на пакет с помощью true, а затем сослался на эту сборку в сборке C++/CLI. Это не сработало, так как у меня были ошибки компиляции, сообщающие, что типы не определены.
  • Обновление пакета Nuget. Это не сработало, так как мы по-прежнему получаем то же исключение во время выполнения (но с новым номером версии).
  • Вместо этого используем ссылку COM (в Visual Studio щелкните правой кнопкой мыши проект > Добавить ссылку > COM > Библиотека объектов Microsoft Excel 16.0). Это не сработало, так как мы по-прежнему получаем подобное исключение во время выполнения (

    Код: Выделить всё

    Could not load file or assembly 'Interop.Microsoft.Office.Interop.Excel.1.9, Version=1.9.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.
    ).
Я также рассматривал возможность использования других библиотек, но не думаю, что возможно переписать наш код взаимодействия Excel в имеющиеся у нас сроки.
Итак, есть ли способ развернуть приложение .NET 9 с помощью Excel Interop на клиентском компьютере без включения Microsoft.Office.Interop.Excel.dll в установщик?

Подробнее здесь: https://stackoverflow.com/questions/798 ... erop-excel

Вернуться в «C#»