Udostępnij za pośrednictwem


Rozwiązywanie problemów z rozwiązaniami pakietu Office

Dotyczy: Visual Studio

W tym artykule przedstawiono sposób rozwiązywania problemów, które mogą wystąpić podczas wykonywania różnych zadań podczas opracowywania rozwiązań pakietu Office w programie Visual Studio。

Problemy podczas tworzenia, uaktualniania i otwierania projektów

Podczas tworzenia lub otwierania projektów pakietu Office mogą wystąpić następujące problemy.

Problem 1. Nie można utworzyć projektu

Jeśli podczas próby utworzenia lub otwarcia projektu pakietu Office wystąpi błąd, ale program Visual Studio nie ma wystarczającej ilości informacji, aby ustalić przyczynę, spróbuj zamknąć projekt, zamknąć program Visual Studio i rozpocząć ponownie.

Jeśli próbujesz utworzyć projekt na poziomie dokumentu, możliwe, że inny dokument o takiej samej nazwie jak dokument w nowym projekcie jest już otwarty w programie Excel lub Word. Upewnij się, że wszystkie inne wystąpienia programu Excel lub Word są zamknięte.

Problem 2. Właściwości kontrolki są tracone podczas tworzenia nowego projektu na podstawie dokumentu z istniejącego projektu

Jeśli utworzysz nowy projekt pakietu Office na podstawie dokumentu z istniejącego projektu, właściwości wszystkich kontrolek znajdujących się w dokumencie nie zostaną skopiowane do nowego projektu. Ręcznie zresetuj właściwości wszystkich istniejących wcześniej kontrolek. Możesz też zachować właściwości kontrolki, tworząc kopię istniejącego projektu zamiast tworzenia nowego projektu lub ładując istniejący projekt do nowego rozwiązania (w projektancie) oraz kopiując i wklejając kontrolki z istniejącego dokumentu do nowego dokumentu.

Problem 3: Błędy podczas tworzenia projektu skoroszytu programu Excel na podstawie istniejącego skoroszytu

Jeśli utworzysz nowy projekt skoroszytu programu Excel na podstawie istniejącego skoroszytu, może zostać wyświetlona kombinacja następujących błędów.

  • Z programu Excel: "Ostrzeżenie o prywatności: ten dokument zawiera makra, kontrolki ActiveX, informacje o pakiecie rozszerzeń XML lub składniki sieci Web. Mogą one obejmować dane osobowe, których inspektor dokumentów nie może usunąć".
  • Z programu Visual Studio: "nie można poprawnie załadować Projektant".

Te błędy mogą wystąpić podczas próby utworzenia projektu opartego na skoroszycie, który usunął jego dane osobowe przy użyciu inspektora dokumentów. Aby uniknąć tego problemu, przed utworzeniem projektu wykonaj następujące kroki:

  1. Otwórz skoroszyt w programie Excel.
  2. W programie Excel otwórz Centrum zaufania.
  3. Na karcie Opcje prywatności wyczyść pole wyboru Usuń dane osobowe z właściwości pliku przy zapisywaniu .
  4. Zapisz skoroszyt i zamknij program Excel.

Problem 4. Nie można otworzyć projektu po migracji

Po migracji rozwiązania pakietu Office do pakietu Microsoft Office 2010 nie można otworzyć projektu na komputerze deweloperskim z zainstalowanym tylko systemem pakietu Microsoft Office 2007. Mogą pojawić się następujące błędy.

  • "Co najmniej jeden projekt w rozwiązaniu nie został poprawnie załadowany. Aby uzyskać szczegółowe informacje, zobacz okno danych wyjściowych".
  • "Nie można utworzyć projektu, ponieważ aplikacja skojarzona z tym typem projektu nie jest zainstalowana na tym komputerze. Musisz zainstalować aplikację pakietu Microsoft Office skojarzoną z tym typem projektu"

Aby rozwiązać ten problem, edytuj plik .vbproj lub csproj . W przypadku projektu Word zastąp HostPackage="{6CE98B71-D55A-4305-87A8-0D6E368D9600}"ciąg HostPackage="{763FDC83-64E5-4651-AC9B-28C4FEB985A1}" . W przypadku projektu programu Excel zastąp ciąg HostPackage="{B284B16A-C42C-4438-BDCD-B72F4AC43CFB}" .HostPackage="{825100CF-0BA7-47EA-A084-DCF3308DAF74}" W przypadku projektu programu Outlook zastąp ciąg HostPackage="{D2B20FF5-A6E5-47E1-90E8-463C6860CB05}"HostPackage="{20A848B8-E01F-4801-962E-25DB0FF57389}".

Alternatywnie upewnij się, że zmigrowane projekty są otwierane tylko na komputerach deweloperskich z zainstalowanym pakietem Microsoft Office 2010.

Problem 5. Błędy w uaktualnionych projektach na poziomie dokumentu pakietu Office 2003, które zawierają kontrolki Windows Forms

Jeśli uaktualnisz projekt na poziomie dokumentu pakietu Microsoft Office 2003, a dokument zawiera kontrolki Windows Forms, uaktualniony projekt może mieć błędy kompilacji lub środowiska uruchomieniowego. Aby uniknąć tego problemu, zainstaluj środowisko uruchomieniowe Visual Studio 2005 Tools for Office Second Edition na komputerze deweloperskim przed uaktualnieniem projektu. Ta wersja środowiska uruchomieniowego jest dostępna jako pakiet redystrybucyjny z Centrum pobierania Microsoft w programie Microsoft Visual Studio 2005 Tools for Office Second Edition Runtime (VSTO 2005 SE) (x86).

Po zakończeniu uaktualniania projektu możesz odinstalować środowisko uruchomieniowe Visual Studio 2005 Tools for Office Second Edition z komputera deweloperskiego, jeśli nie jest on używany przez żadne inne rozwiązania pakietu Office.

Problemy podczas korzystania z projektantów

Podczas pracy z dokumentem, skoroszytem lub projektantem arkusza w projektach na poziomie dokumentu mogą wystąpić następujące problemy.

Problem 1: nie można poprawnie załadować Projektant

Program Visual Studio nie może otworzyć projektanta w następujących przypadkach:

  • Program Excel lub Word jest już otwarty i wyświetla modalne okno dialogowe. Aby otworzyć projektanta, sprawdź, czy program Excel lub Word ma otwarte modalne okno dialogowe, i zamknij wszystkie otwarte modalne okna dialogowe. Jeśli nie ma otwartych modalnych okien dialogowych, przed udzieleniem odpowiedzi przez program Excel lub Word może być wymagana inna akcja.
  • Projekt jest obecnie debugowany. Aby otworzyć projektanta, zatrzymaj lub zakończ debugowanie.
  • Dodatek VSTO programu Excel zainstalowany na komputerze deweloperskim wyświetla okno dialogowe po uruchomieniu programu Excel. Aby utworzyć projekt na poziomie dokumentu programu Excel, należy najpierw wyłączyć dodatek VSTO.

Problem 2. Kontrolki są wyświetlane jako czarne prostokąty w dokumencie lub arkuszu

Jeśli grupujesz kontrolki w dokumencie lub arkuszu, program Visual Studio nie rozpoznaje już kontrolek. W oknie Właściwości nie można uzyskać dostępu do kontrolek zgrupowanych i są one wyświetlane jako czarne prostokąty w dokumencie lub arkuszu. Aby przywrócić ich funkcjonalność, należy rozgrupować kontrolki.

Problem 3. Kontrolki szablonu Word nie są widoczne w programie Visual Studio

Jeśli otworzysz szablon Word w projektancie programu Visual Studio, kontrolki szablonu, które nie są zgodne z tekstem, mogą nie być widoczne. Dzieje się tak, ponieważ program Visual Studio otwiera szablony Word w widoku normalnym. Aby wyświetlić kontrolki, wybierz menu Widok, wskaż pozycję Microsoft Office Word View, a następnie wybierz pozycję Układ wydruku.

Problem 4. Polecenie wstawiania obiektu clipart nie wykonuje żadnych czynności w projektancie programu Visual Studio

Gdy program Excel lub Word jest otwarty w projektancie programu Visual Studio, kliknięcie przycisku ClipArt na karcie Ilustracje na wstążce nie powoduje otwarcia okienka zadań ClipArt. Aby dodać obiekt clipart, należy otworzyć kopię skoroszytu lub dokumentu, który znajduje się w głównym folderze projektu (a nie w folderze \bin ) poza programem Visual Studio, dodać obiekt clipart, a następnie zapisać skoroszyt lub dokument.

Problemy podczas pisania kodu

Podczas pisania kodu w projektach pakietu Office mogą wystąpić następujące problemy.

Problem 1: Niektóre zdarzenia obiektów pakietu Office nie są dostępne podczas korzystania z języka C#

W niektórych przypadkach podczas próby uzyskania dostępu do określonego zdarzenia wystąpienia podstawowego zestawu międzyoperacyjnego (PIA) pakietu Office w projekcie języka Visual C# może wystąpić błąd kompilatora podobny do następującego.

Niejednoznaczność między elementami "Microsoft.Office.Interop.Excel._Application.NewWorkbook" i "Microsoft.Office.Interop.Excel.AppEvents_Event.NewWorkbook"

Ten błąd oznacza, że próbujesz uzyskać dostęp do zdarzenia o takiej samej nazwie jak inna właściwość lub metoda obiektu. Aby uzyskać dostęp do zdarzenia, należy rzutować obiekt do jego interfejsu zdarzeń.

Typy usługi Office PIA, które mają zdarzenia, implementują dwa interfejsy: podstawowy interfejs ze wszystkimi właściwościami i metodami oraz interfejs zdarzeń zawierający zdarzenia, które są uwidocznione przez obiekt. Te interfejsy zdarzeń używają konwencji nazewnictwa _<objectname>Events<n>Zdarzenie, takie jak AppEvents_Event i ApplicationEvents2_Event. Jeśli nie możesz uzyskać dostępu do zdarzenia, które ma zostać odnalazł w obiekcie, rzutuj obiekt do jego interfejsu zdarzeń.

Na przykład Application obiekty mają NewWorkbook zdarzenie i właściwość NewWorkbook . Aby obsłużyć NewWorkbook zdarzenie, rzutuj do Application interfejsu AppEvents_Event . W poniższym przykładzie kodu pokazano, jak to zrobić w projekcie na poziomie dokumentu dla programu Excel.

private void ThisWorkbook_Startup(object sender, System.EventArgs e)
{
    ((Excel.AppEvents_Event)this.Application).NewWorkbook += 
        new Excel.AppEvents_NewWorkbookEventHandler(ThisWorkbook_NewWorkbook);
}

void ThisWorkbook_NewWorkbook(Excel.Workbook Wb)
{
    // Perform some work here.
}

Aby uzyskać więcej informacji na temat interfejsów zdarzeń w interfejsach PIA pakietu Office, zobacz Omówienie klas i interfejsów w podstawowych zestawach międzyoperacyjnych pakietu Office.

Problem 2. Nie można odwoływać się do klas usługi Office PIA w projektach, które są przeznaczone dla .NET Framework 4 lub .NET Framework 4.5

W projektach docelowych .NET Framework 4 lub .NET Framework 4.5 kod odwołujące się do klasy zdefiniowanej w usłudze Office PIA nie będzie domyślnie kompilowany. Klasy w interfejsach PIA używają klasy objectname>konwencji< nazewnictwa, takiej jak DocumentClass i WorkbookClass. Na przykład następujący kod z projektu dodatku Word VSTO nie zostanie skompilowany.

Word.DocumentClass document = (Word.DocumentClass) Globals.ThisAddIn.Application.ActiveDocument;

Ten kod powoduje następujące błędy kompilacji:

  • Visual Basic: "Odwołanie do klasy "DocumentClass" jest niedozwolone, gdy jej zestaw jest połączony przy użyciu trybu No-PIA.
  • Visual C#: "Interop type 'Microsoft.Office.Interop. Word. Nie można osadzić klasy DocumentClass. Zamiast tego użyj odpowiedniego interfejsu".

Aby rozwiązać ten błąd, zmodyfikuj kod, aby odwoływał się do odpowiedniego interfejsu. Na przykład zamiast odwoływać się do obiektu DocumentClass , zamiast odwoływać się do wystąpienia interfejsu Document .

Word.Document document = Globals.ThisAddIn.Application.ActiveDocument;

Projekty przeznaczone dla .NET Framework 4 lub .NET Framework 4.5 automatycznie osadzają domyślnie wszystkie typy międzyoperacyjności z urzędów piasty pakietu Office. Ten błąd kompilacji występuje, ponieważ osadzona funkcja typów międzyoperacyjnych działa tylko z interfejsami, a nie klasami. Aby uzyskać więcej informacji na temat interfejsów i klas w interfejsach PIA pakietu Office, zobacz Omówienie klas i interfejsów w podstawowych zestawach międzyoperacyjnych pakietu Office. Aby uzyskać więcej informacji na temat funkcji osadzonych typów międzyoperacyjnych w projektach pakietu Office, zobacz Projektowanie i tworzenie rozwiązań pakietu Office.

Problem 3. Odwołania do klas pakietu Office nie są rozpoznawane

Niektóre nazwy klas, na przykład Aplikacja, znajdują się w wielu przestrzeniach nazw, takich jak Microsoft.Office.Interop.Word i System.Windows.Forms. Z tego powodu instrukcja Imports/using w górnej części szablonów projektu zawiera skróconą stałą kwalifikacyjną, na przykład:

using Word = Microsoft.Office.Interop.Word;

To użycie instrukcji Imports/using wymaga rozróżnienia odwołań do klas pakietu Office przy użyciu kwalifikatora Word lub programu Excel, na przykład:

Word.Document doc;

Jeśli użyjesz deklaracji bez kwalifikacji, wystąpią błędy, na przykład:

Document doc;  // Class is ambiguous

Mimo że zaimportowano przestrzeń nazw Word lub Excel i masz dostęp do wszystkich klas w niej znajdujących się, musisz w pełni kwalifikować wszystkie typy za pomocą Word lub excel, aby usunąć niejednoznaczność przestrzeni nazw.

Problemy podczas tworzenia projektów

Podczas tworzenia projektów pakietu Office mogą wystąpić następujące problemy.

Problem 1. Nie można utworzyć projektu na poziomie dokumentu opartego na dokumencie z ograniczonymi uprawnieniami

Program Visual Studio nie może tworzyć projektów na poziomie dokumentu, jeśli dokument ma ograniczone uprawnienia. Jeśli projekt zawiera dokument z ograniczonymi uprawnieniami, projekt nie zostanie skompilowany i w oknie Lista błędów zostanie wyświetlony następujący komunikat.

Nie można dodać dostosowania.

Jeśli chcesz dołączyć dokument z ograniczonymi uprawnieniami, użyj nieograniczonego dokumentu podczas opracowywania i kompilowania rozwiązania. Następnie zastosuj ograniczone uprawnienia do dokumentu w lokalizacji publikowania po opublikowaniu rozwiązania.

Problem 2. Błędy kompilatora występują po usunięciu kontrolki NamedRange

Jeśli usuniesz kontrolkę NamedRange z arkusza, który nie jest aktywnym arkuszem w projektancie, kod wygenerowany automatycznie może nie zostać usunięty z projektu i mogą wystąpić błędy kompilatora. Aby upewnić się, że kod został usunięty, należy zawsze wybrać arkusz zawierający NamedRange kontrolkę, aby uczynić go aktywnym arkuszem przed usunięciem kontrolki. Jeśli kod wygenerowany automatycznie nie zostanie usunięty podczas usuwania kontrolki, możesz spowodować, że projektant usunie kod, aktywując arkusz i wprowadzając zmianę, aby arkusz został oznaczony jako zmodyfikowany. Podczas ponownego kompilowania projektu kod jest usuwany.

Problemy podczas debugowania projektów

Podczas debugowania projektów pakietu Office mogą wystąpić następujące problemy.

Problem 1. Monit o odinstalowanie pojawia się podczas publikowania i instalowania rozwiązania na komputerze deweloperskim

Podczas debugowania rozwiązania pakietu Office może zostać wyświetlony następujący błąd.

Nie można zainstalować dostosowania, ponieważ inna wersja jest obecnie zainstalowana i nie można jej uaktualnić z tej lokalizacji.

Ten błąd wskazuje, że rozwiązanie pakietu Office zostało wcześniej opublikowane i zainstalowane na komputerze deweloperskim. Aby zapobiec wyświetlaniu komunikatu, odinstaluj rozwiązanie z listy zainstalowanych programów na komputerze przed debugowaniem rozwiązania. Alternatywnie możesz utworzyć inne konto użytkownika na komputerze deweloperskim, aby przetestować instalację opublikowanego rozwiązania.

Problem 2. Projekty na poziomie dokumentu utworzone w lokalizacjach sieciowych UNC nie są uruchamiane z poziomu programu Visual Studio

Jeśli utworzysz projekt na poziomie dokumentu dla programu Excel lub Word w lokalizacji sieciowej UNC, musisz dodać lokalizację dokumentu do listy zaufanych lokalizacji w programie Excel lub Word. W przeciwnym razie dostosowanie nie zostanie załadowane podczas próby uruchomienia lub debugowania projektu w programie Visual Studio. Aby uzyskać więcej informacji na temat zaufanych lokalizacji, zobacz Udzielanie zaufania do dokumentów.

Problem 3. Wątki nie są poprawnie zatrzymywane po debugowaniu

Projekty pakietu Office w programie Visual Studio są zgodne z konwencją nazewnictwa wątków, która umożliwia debugerowi poprawne zamknięcie programu. Jeśli tworzysz wątki w rozwiązaniu, nazwij każdy wątek prefiksem VSTA_, aby upewnić się, że te wątki są prawidłowo obsługiwane po zatrzymaniu debugowania. Na przykład można ustawić Name właściwość wątku, który oczekuje na VSTA_NetworkListener zdarzenia sieciowego.

Problem 4: Nie można uruchomić ani debugować żadnego rozwiązania pakietu Office na komputerze deweloperskim

Jeśli nie możesz uruchomić lub opracować projektu pakietu Office na komputerze deweloperskim, może zostać wyświetlony następujący komunikat o błędzie.

Nie można załadować dostosowania, ponieważ nie można utworzyć domeny aplikacji.

Program Visual Studio używa modułu ładującego zestawów .NET Framework fusion do buforowania zestawów przed załadowaniem rozwiązań pakietu Office. Upewnij się, że program Visual Studio może zapisywać dane w pamięci podręcznej Fusion i spróbuj ponownie. Aby uzyskać więcej informacji, zobacz Zestawy kopiowania w tle.

Problem 5. Błąd podczas zatrzymywania debugera w projekcie na poziomie dokumentu po użyciu polecenia Edytuj i kontynuuj

Jeśli używasz funkcji Edytuj i kontynuuj, aby wprowadzić zmiany w kodzie w projekcie na poziomie dokumentu dla programu Excel lub Word, gdy projekt jest w trybie przerwania, w przypadku zatrzymania debugera może zostać wyświetlone okno dialogowe z następującym komunikatem o błędzie.

Zakończenie procesu w bieżącym stanie może spowodować niepożądane wyniki, w tym utratę danych i niestabilność systemu.

Niezależnie od tego, czy w oknie dialogowym wybierzesz pozycję Tak, czy Nie, program Visual Studio zakończy proces programu Excel lub Word i zatrzyma debuger. Aby zatrzymać debugowanie projektu bez wyświetlania tego okna dialogowego, zamknij program Excel lub Word bezpośrednio, zamiast zatrzymywać debuger w programie Visual Studio.

Informacje