Ссылка на Microsoft.Office.Core отсутствует

94

Используя пример, представленный в codeproject, я изо всех сил пытаюсь понять, где я могу найти ссылку на библиотеку Microsoft.Office.Core.

Я получаю сообщение об ошибке «Не удалось найти указанный компонент Microsoft.Office.Core».

В этой системе установлены только Office 2007 Enterprise Edition и Outlook 2003. Может ли это быть причиной этого? В противном случае, на какую конкретную dll я должен ссылаться?

Максим Гершкович
источник
Пробовал оба предложения и, похоже, застрял. Вопрос в том, какая «библиотека COM подходит для вашей системы» в моем случае?
Максим Гершкович
Вы когда-нибудь понимали это? У меня такая же проблема.
rd42

Ответы:

158

Вы можете добавить ссылку на Microsoft.Office.Coreиз вкладки COM-компонентов в окне добавления ссылки, добавив ссылку на Microsoft Office 12.0 Object Library. Снимок экрана покажет, какой компонент вам нужен.

введите описание изображения здесь

Адиль
источник
.NET-> Office (если установлен PIA). См. Ответ Спайка ниже.
samis
3
Я использовал « Библиотеку объектов Microsoft Office 14.0 » (12.0 не существовало), и она тоже работала. Кроме того, мне сначала пришлось удалить ссылку на «Microsoft.Office.Core».
marsze
Джазакалла Адил бхаи. Работал у меня.
shaikhspear 01
2
Я использую Visual Studio 2017, но не вижу «Библиотеку объектов Microsoft Office XX.X» на вкладке COM. Мне нужно установить «Microsoft Office»?
Casper
@Kin Ты узнал, что делать? Я также использую VS 2017 и не вижу ссылки на библиотеки офиса. Вам приходилось устанавливать Microsoft Office?
Луис Паласиос,
23

Ни один из приведенных выше ответов мне не помог, я использовал Visual Studio 2017. Я установил Office / SharePoint Development с помощью установщика Visual Studio.

введите описание изображения здесь

После этого я смог увидеть «офис», эта сборка содержит Microsoft.Office.Core.

введите описание изображения здесь

Надеюсь, это тебе поможет.

Абхиманью
источник
18

Вам необходимо загрузить и установить PIA (основные сборки взаимодействия) для той версии Office, которую вы используете. После установки вы можете добавить ссылку на свой проект, и они будут доступны в диалоговом окне добавления ссылки. Вот ссылки для их скачивания ...

Office 2010 PIA

Office 2007 PIA

Office 2003 PIA

Фил Райт
источник
7
Пробовал все три. Пока не повезло!
Максим Гершкович
3
Установил PIA, но не смог найти их в «Добавить ссылку», но потом это сработало для меня, добавив DLL напрямую по пути, например, C: \ Windows \ assembly \ GAC_MSIL \ Microsoft.Office.Interop.Excel \ xxxx \ ... .
oo_dev
2
Мне удалось найти другие PIA, но не Microsoft.Office.Core
JohnD
По-прежнему не отображается в списке COM для добавления в качестве справки
Эдвард
5

Если у кого-то нет ссылки в .NET. COM (вкладка) или не иметь установленный офис на машине, где был установлен визуал, может:

  1. Загрузите и установите: Инструменты разработчика Microsoft Office
  2. Добавить ссылки из:

    C:\Program Files (x86)\Microsoft Visual Studio 11.0\Visual Studio Tools for Office\PIA\Office15
    
Артур Тарновски
источник
4

После установки Office PIA (основных сборок взаимодействия) добавьте ссылку на свой проект -> его на вкладке .NET - имя компонента «Office»

Спайк
источник
1
Проголосовали, потому что это действительно помогло мне. Первоначальная установка ссылок на .COM не решила проблему.
DrMarbuse
Приятно знать, где находится эта вкладка .NET,
Эдвард
3

Теперь для этого есть пакет nuget.

https://www.nuget.org/packages/NetOffice.Core.Net40/

Сначала я не нашел офис в COM, поэтому попробовал этот nuget, и он сработал!

Г-н Отт
источник
1
Добавление в ответ: если вы устанавливаете библиотеку Office Interop через консоль диспетчера пакетов NuGet (скажем, PowerPoint или Excel), она тоже пытается установить это ... то же самое не похоже, если вы используете графический интерфейс Visual Studio NuGet
Thumper
2

Вы действительно просмотрели свои ссылки и добавили ссылку .NET на библиотеку Microsoft.Office.Core? Если вы скачали пример приложения, ответ будет положительным. В таком случае следуйте советам из статьи:

Если в вашей системе нет Microsoft Office Outlook 2003, возможно, вам придется изменить ссылки, используемые проектом «OutlookConnector». То есть, если вы получили ошибку сборки, описанную как «Не удалось найти тип пространства имен Outlook», вероятно, у вас нет Office 2003. Просто разверните ссылки на проект, удалите пораженные элементы и добавьте Библиотека COM, подходящая для вашей системы. Если у кого-то есть динамический способ справиться с этим, мне было бы любопытно увидеть, как вы это сделали.

Это должно решить вашу проблему. Если нет, дайте нам знать.

IAmTimCorey
источник
2

Если вы используете Visual Studio 2012, чтобы это работало и чтобы сделать ссылку на Microsoft Office Core, вы должны сделать ссылку через Visual Studio, щелкнув Project в верхнем меню, Добавить ссылку, кнопку Extensions и проверив офис, который сейчас (14.0).

Гумберт
источник
1

Если вы не можете найти PIA для Office 2013, выполните следующие действия:

  1. Щелкните Обозреватель решений в Visual Studio.
  2. Щелкните правой кнопкой мыши имя вашего проекта (не имя решения)
  3. Выберите "Управление пакетами Nuget".
  4. Нажмите Обзор и найдите PIA 2013, выберите показанный PIA и нажмите Установить ...

И все готово.

Дипеш
источник
0

Я столкнулся с той же проблемой, когда попытался открыть свой старый проект C # в версии Visual Studio 2017. Эта проблема обычно возникает, когда вы пытаетесь открыть проект, созданный в предыдущей версии VS, и открыть его в последней версии. что я сделал, я открыл свой проект и удалил ссылку из моего проекта, затем добавил библиотеку объектов Microsoft outlook 12.0 и библиотеку объектов Microsoft office 12.0 Библиотека объектов Microsoft outlook 12.0

Джобайер Рифад
источник
-1

Откройте свойства решения и нажмите «Опубликовать». Затем повторно щелкните файлы приложения. Измените предварительное условие на включение.

недимнамо
источник
-1

У меня такая же проблема. Я перешел в Добавить ссылки, вкладку COM, выбрать библиотеку объектов Microsoft Office 15.0. Хорошо, и моя проблема закончилась.

часть моего кода:

EXCEL.Range rango;
            rango = (EXCEL.Range)HojadetrabajoExcel.get_Range("AE13", "AK23");
            rango.Select();
      //      EXCEL.Pictures Lafoto = (EXCEL.Pictures).HojadetrabajoExcel.Pictures(System.Reflection.Missing.Value);
            EXCEL.Pictures Lafoto = HojadetrabajoExcel.Pictures(System.Reflection.Missing.Value);

            HojadetrabajoExcel.Shapes.AddPicture(@"D:\GENETICA HUMANA\Reportes\imagenes\" + Variables.nombreimagen,
                Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue,
                float.Parse(rango.Left.ToString()),float.Parse(rango.Top.ToString()), float.Parse(rango.Width.ToString()),
                float.Parse(rango.Height.ToString()));
Джованни Родриго Гарсиа Рада
источник