Как MSBuild EmbedInteropTypes работает с PIA и COMReferences? - PullRequest
1 голос
/ 03 мая 2019

Я рационализирую файлы proj для большой системы, которая включает использование взаимодействия MS Office (Excel).До сих пор я нашел два разных типа ссылок:

  1. Тег "Ссылка" с установленным значением "EmbedIntopTypes".Включаемое значение является строгим именем для Microsoft.Office.Interop.Excel
  2. Тег «COMReference» с установленным значением «EmbedInteropTypes», плюс теги для Guid, VersionMajor, VersionMinor, Lcid и WrapperTool.

Чтение, которое я прочитал, наводит меня на мысль, что # 1 ссылается на PIA (в настоящее время мы ориентируемся на Office 2010, после чего я прочитал, что MS не отправляет PIA из-за добавления "EmbedInteropTypes ").

# 2 представляется ссылкой на COM, которая может привести к созданию PIA (через тег WrapperTool) во время сборки.

Мне кажется, что EmbedInteropTypes не может заменить PIA (по крайней мере, на машинах разработчиков / разработчиков), потому что на самом деле использует PIA, поэтому я не совсем понимаю, что MS прекратила отправлять PIA в пользу типов EmbedInterop.

Iне могу найти какой-либо определенной документации по MSDN, которая на самом деле объясняет, как COM-ссылки предназначены для выполнения в настоящее время (фактически с VS2010 / .NET 4.0, хотя я еще ничего не читал, ссылаясь на функции, добавленные после .NET 4.0).

Таким образом, мой вопрос: как ссылки на COM-объекты (такие как MS Office Excel, но общеприменимый ответ лучше всего), предназначенные для кодирования в файлах MSBuild (csproj / vbproj / etc.) Сегодня??В идеале должен быть подход, который позволяет легко обрабатывать несколько версий, а также избегать необходимости полной установки / регистрации COM-объектов на сборочном компьютере (например, чтобы избежать возможных дополнительных затрат на лицензию).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...