Brak odniesienia do Microsoft.Office.Core


93

Korzystając z przykładu podanego w codeproject, staram się ustalić, gdzie mogę znaleźć odniesienie do biblioteki Microsoft.Office.Core.

Otrzymuję błąd „Nie można znaleźć wskazanego składnika 'Microsoft.Office.Core'.”

Mam tylko Office 2007 Enterprise Edition i Outlook 2003 zainstalowane w tym systemie. Czy to może być tego przyczyną? W przeciwnym razie do której konkretnej biblioteki dll mam się odwoływać?


Wypróbowałem obie sugestie i nadal wydaje się, że utknąłem. Pytanie brzmi: jaka jest „Biblioteka COM odpowiednia dla twojego systemu” w moim przypadku?
Maxim Gershkovich

Czy kiedykolwiek to rozgryzłeś? Mam ten sam problem.
rd42

Odpowiedzi:


157

Możesz dodać odwołanie do Microsoft.Office.Corez karty komponentów COM w oknie dodawania odwołania, dodając odwołanie do Microsoft Office 12.0 Object Library. Zrzut ekranu pokaże, jakiego komponentu potrzebujesz.

wprowadź opis obrazu tutaj


.NET-> Office (jeśli zainstalowano PIA). Zobacz odpowiedź Spike'a poniżej.
samis

3
Użyłem „Microsoft Office 14.0 Object Library” (12.0 nie istniało) i też zadziałało. Ponadto musiałem najpierw usunąć odniesienie do „Microsoft.Office.Core”.
marsze

Jazakallah Adil bhai. Pracował dla mnie.
shaikhspear

2
Używam programu Visual Studio 2017, ale nie widzę „Biblioteki obiektów Microsoft Office XX.X” na karcie COM. Czy muszę zainstalować „Microsoft Office”?
Casper

@Kin Czy dowiedziałeś się, co robić? Używam też VS 2017 i nie widzę odniesienia do bibliotek biura. Czy musiałeś zainstalować pakiet Microsoft Office?
Luis Palacios

23

Żadna z powyższych odpowiedzi nie pomogła mi, korzystałem z Visual Studio 2017. Zainstalowałem Office / SharePoint Development za pomocą Visual Studio Installer.

wprowadź opis obrazu tutaj

Potem mogłem zobaczyć „biuro”, ten zestaw zawiera Microsoft.Office.Core.

wprowadź opis obrazu tutaj

Mam nadzieję, że to ci pomoże.


18

Musisz pobrać i zainstalować PIA (podstawowe zestawy międzyoperacyjne) dla używanej wersji pakietu Office. Po zainstalowaniu możesz dodać odniesienie do swojego projektu, które będzie dostępne w oknie dialogowym dodawania odniesienia. Oto linki do ich pobrania ...

Pakiet Office 2010 PIA

Office 2007 PIA

Office 2003 PIA


7
Wypróbowałem wszystkie trzy. Jak dotąd nie ma szczęścia!
Maxim Gershkovich

3
Zainstalowałem PIA, ale nie mogłem ich znaleźć w "Dodaj odwołanie", ale wtedy zadziałało, dodając bibliotekę DLL bezpośrednio ze ścieżki, np. C: \ Windows \ assembly \ GAC_MSIL \ Microsoft.Office.Interop.Excel \ xxxx \ ... ,
oo_dev

2
Udało mi się znaleźć inne PIA, ale nie Microsoft.Office.Core
JohnD

Nadal nie pojawia się na liście COM do dodania jako odniesienie
Edward

5

Jeśli ktoś nie ma odniesienia w .NET. COM (tab) lub nie mieć zainstalowanego pakietu Office na komputerze, na którym zainstalowano Visual, może wykonać:

  1. Pobierz i zainstaluj: Microsoft Office Developer Tools
  2. Dodaj referencje z:

    C:\Program Files (x86)\Microsoft Visual Studio 11.0\Visual Studio Tools for Office\PIA\Office15
    

4

Po zainstalowaniu pakietu Office PIA (podstawowe zestawy międzyoperacyjne) dodaj odniesienie do projektu -> jego na karcie .NET - nazwa składnika „Office”


1
Głosowano za, ponieważ to naprawdę mi to zrobiło. Początkowe ustawienie odwołań do .COM nie rozwiązało problemu.
DrMarbuse

Miło wiedzieć, gdzie jest ta zakładka .NET
Edward

3

Teraz jest do tego pakiet nuget.

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

Najpierw nie znalazłem biura w COM, więc wypróbowałem ten nuget i zadziałało!


1
Dodawanie do odpowiedzi: Jeśli instalujesz bibliotekę Office Interop za pośrednictwem konsoli menedżera pakietów NuGet (na przykład programu PowerPoint lub Excel), wygląda na to, że również ją zainstalujesz ... to samo nie wydaje się być prawdą, jeśli używasz interfejsu GUI programu Visual Studio NuGet
Thumper

2

Czy faktycznie przejrzałeś odniesienia i dodałeś odwołanie .NET do biblioteki „Microsoft.Office.Core”? Jeśli pobrałeś przykładową aplikację, odpowiedź brzmiałaby: tak. W takim przypadku postępuj zgodnie z radą zawartą w artykule:

Jeśli w systemie nie ma programu Microsoft Office Outlook 2003, może być konieczna zmiana odwołań używanych przez projekt „OutlookConnector”. Oznacza to, że jeśli otrzymałeś błąd kompilacji opisany jako „Nie można znaleźć typu nazwy przestrzeni nazw„ Outlook ””, prawdopodobnie nie masz pakietu Office 2003. Po prostu rozwiń odwołania do projektu, usuń elementy, których dotyczy problem, i dodaj bibliotekę COM odpowiednią dla Twojego systemu. Jeśli ktoś ma dynamiczny sposób radzenia sobie z tym, byłbym ciekawy, czy zrobiłeś to.

To powinno rozwiązać twój problem. Jeśli nie, daj nam znać.


2

Jeśli używasz programu Visual Studio 2012, aby to zadziałało i aby odwołać się do Microsoft Office Core, musisz utworzyć odwołanie za pośrednictwem programu Visual Studio, klikając przycisk Projekt, Dodaj odniesienie, Rozszerzenia w górnym menu i sprawdzając biuro, które jest teraz (14,0).


1

Jeśli nie możesz znaleźć PIA dla Office 2013, wykonaj następujące kroki:

  1. Kliknij Eksplorator rozwiązań w programie Visual Studio
  2. Kliknij prawym przyciskiem myszy nazwę projektu (nie nazwę rozwiązania)
  3. Wybierz „Zarządzaj pakietami Nuget”
  4. Kliknij Przeglądaj i wyszukaj PIA 2013, wybierz pokazany PIA i kliknij Zainstaluj .....

Gotowe.



0

Napotkałem ten sam problem, gdy próbowałem otworzyć mój stary projekt C # w wersji Visual Studio 2017. Ten problem pojawia się zwykle podczas próby otwarcia projektu utworzonego w poprzedniej wersji programu VS i otwarcia go w najnowszej wersji. co zrobiłem, to otworzyłem projekt i usunąłem odniesienie z mojego projektu, a następnie dodałem bibliotekę obiektów Microsoft Outlook 12.0 i bibliotekę obiektów Microsoft Office 12.0 Biblioteka obiektów Microsoft Outlook 12.0


-1

Otwórz właściwości rozwiązania i kliknij publikuj. Następnie ponownie kliknij pliki aplikacji. Zmień warunek wstępny, aby uwzględnić.


-1

Mam ten sam problem. Poszedłem do Dodaj referencje, kartę COM, wybierz bibliotekę Microsoft Office 15.0 Objetct. Ok, i mój problem się kończy.

część mojego kodu to:

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()));
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.