Начало разработки VSTO

Я вполне перепутан с тем, что является необходимыми инструментами для VSTO develpment. Конкретно я хочу управлять документами Excel 2003/2007 программно. Я сделал довольно много VBA прежде, если Вы хотите связать какой-либо ответ на это.

Немного вопросов я имею о VSTO:

  1. Я могу использовать Visual Studio 2008 Express Edition C#/C ++ для этого?
  2. Мне должны были установить платформу.NET?
  3. Получающаяся программа VSTO должна иметь копию Office, установленного в той же системе для выполнения?

Будут цениться прямые ссылки на соответствующие инструменты/плагины/IDE.

Примечание: Я полностью плохо знаком с VSTO и.NET, но продвинутым пользователем Office. У меня есть опыт с программированием COM.

44
задан Todd Main 22 July 2010 в 20:01
поделиться

2 ответа

Да, он может быть запутанным, особенно учитывая конвенции по именованию на уровне пропуска и т. Д. По сути, вам понадобится:

  • Полная версия (не экспресс) визуализации Студия и версия .NET вы нацеливаете.
  • Одно из времен Run VSTO (VSTO 2003, VSTO 2005, VSTO 2005 SE, VSTO 2008, VSTO 2010). Для чего вы спрашиваете, VSTO 2005 SE, вероятно, ваша лучшая ставка.
  • При распространении вашего приложения вы вы Необходимо больше, как Pias и версия .NET, вы нацелены. Для VSTO 2010 вам не нужна Pias (только то, что вы используете, будут упакованы с помощью вашего приложения автоматически).

Пара советов:

  • идет от VBE внутри офиса на VSTO должен быть гладким ходом Если вы использовали .NET в значительной степени.
  • Версии VSTO объекта модели для любой данной программы (Excel, PowerPoint и т. Д.) Может быть несколько Больше способов делать то, что разные / лучше, чем в VBA Версия объектной модели. За Пример, контроль закладок для Слово в VSTO 2008 не то же самое, что тот, который родной для одного Доступ через VBA.
  • Распределение вашего приложения может быть болью. Это самая причина того, что VSTO для Visual Studio 2010 не требует от вас Чтобы включить полные файлы Interop (Pia) с вашей пакетом.
  • нацеливается на разные версии Офис с тем же решением не официально поддерживается для Pre-VSTO 2010. Есть пути вокруг этого вопроса, что некоторые люди говорили, но вы не получите Большая поддержка от MSFT на нем.

Есть некоторые сайты, которые вы должны взглянуть на:

Наконец, чтобы сохранить лучшее для последнего, это книга, которую я прочитал, когда меня только начинал, и это было очень полезно: VSTO для простых смертных (TM): Руководство по разработке VBA для разработки Microsoft Office Visual Studio 2005 Инструменты для офиса

65
ответ дан 26 November 2019 в 22:11
поделиться

Да, это можно сделать с помощью Наложения . Образец на веб-странице - это именно то, о чем вы говорите.

Для структуры проекта можно иметь что-то подобное:

.
|-- PM-Core
|-- PM-WebCommon (of type war, depends on core)
|-- PM-Client1 (of type war, depends on webcommon)
`-- PM-Client2 (of type war, depends on webcommon)

И использовать наложение в PM-Client1 и PM-Client2, чтобы «объединить» их с PM-WebCommon и пакетом войнами для каждого клиента.

UPDATE Я не буду освещать все детали, но я думаю, что объявление зависимости от войны с областью типа runtime требуется при использовании оверлея, это то, как оверлей работает (на самом деле, вся накладная вещь является своего рода взлом). Теперь, чтобы решить проблему затмения, одним из решений будет создание JAR, содержащего классы проекта PM-WebCommon. Для этого используйте необязательный параметр attachClasses и установите для него значение true . Это позволит создать PM-WebCommon- < версия > -classes.jar , который затем можно будет объявить как зависимость в PM-Client1 (с предоставленной областью ). Для получения подробной информации см. MWAR-73 и MWAR-131 . Это также обсуждается в FAQ военного плагина. Обратите внимание, что это не рекомендуется, правильным способом было бы переместить классы в отдельный модуль (и это другое решение, которое я хотел бы упомянуть).

UPDATE (201001018): Я попробовал параметр attachClasses и он работает с версией 2 .1-beta-1 плагина.

-121--4950863-

Сейчас я реализую обходной путь:

alt text http://yuml.me/7f82bd5c

Я использую автономное java-приложение, которое принимает вызовы tcp от клиента и пересылает их как вызовы JNDI на сервер приложений.

-121--3367049-

SpreadsheetGear for .NET - это компонент электронной таблицы, совместимый с Excel для .NET, который будет работать с выпусками Visual Studio Express, требует .NET 2.0 или более поздней версии, не требует установки Office или Excel и разрешает бесплатное распространение роялти на неограниченное количество клиентских и/или серверных компьютеров.

Вы можете посмотреть образцы в реальном времени здесь и скачать бесплатную пробную версию здесь .

Отказ от ответственности: я владею SpreadsheetGear LLC

4
ответ дан 26 November 2019 в 22:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: