2016-12-15 10 views
0

Я работаю в команде, которая в настоящее время специализируется на создании оконных приложений Windows в C# /. NET, которые взаимодействуют с локальными пользовательскими экземплярами Microsoft Excel через Office COM Interop. В настоящее время мне предъявлено обвинение в указании нового продукта, но мне сказали, что проект не будет работать, если приложение не может работать на Mac, а также на Windows, то есть мы должны иметь возможность выпуска Mac версии приложения который может быть установлен на OSX и взаимодействовать с объектной моделью экземпляра пользователя Microsoft Excel для Mac.Office (Excel) COM-взаимодействие на Mac OSX с использованием .NET Core?

Запуск приложения с помощью Parallels, Mono или Wine (см. COM Interop Through Wine in OSX, на который никогда не отвечали) не является решением, поскольку спецификация приложения требует, чтобы пользовательская машина не была каким-либо образом изменена. Мы просто должны предположить, что у пользователя есть лицензионная локальная копия Excel, работающая с этим ... что мы всегда делали в Windows, где она отлично работает.

Я думаю, что .NET Core является ответом, но я не могу найти где-либо там, где он определенно говорит, что мы можем (или будем иметь возможность) получить доступ к библиотеке объектов Excel из C# при запуске .NET Core на Mac OSX с помощью установлена ​​локальная копия Excel для Mac. Может ли кто-нибудь указать мне, пожалуйста, где это уже обсуждалось, или нет, расскажите мне, как я могу узнать от Microsoft, если это в их дорожной карте для .NET Core?

ответ

2

Я получил некоторую полезную обратную связь от аналогично сформулированного вопроса на MSDN. Я также разместил выпуск на ядре Github .NET, но я думаю, что это уже ясно, что ответ на это, что выглядит следующим образом:

  • Команда .NET Ядро может быть, возможно, убеждаемой добавить доступ в пространство имен Office.Interop.Excel в библиотеке .NET Core Class, но только для Windows
  • Это невозможно сделать для .NET Core на OSX, поскольку среда не подходит для обмена объектами COM.
  • Это оставляет только два варианта управления объектами в Excel для Mac, оба из которых уже существуют: встроенный VBA или Javascript (Office надстройки).
  • Office Addins - отличное новое решение для ориентированных на данные ориентированных на данные объектов в Excel - и его многоплатформенная природа является удивительной - так что основное внимание уделяется разработке от Microsoft. Однако не должно быть никакого соответствия для работы COM для управления сложными электронными таблицами, , поскольку это не является его фокусом.
  • Это означает, что нет решения для управления объектами в Excel для Mac с использованием C#, так, как есть в Windows, и там , похоже, не представляет никакой перспективы для него.

Суть: очень приветствуемая инициатива .NET Core выглядела так, как будто это было исправление, но, к сожалению, из-за ограничений архитектуры OSX.

Я представил это как ответ, потому что я думаю, что подошел к концу строки запроса, но если кто-то считает, что что-либо из вышеизложенного неверно, пожалуйста, кричите!

Спасибо.