Rozwiązywanie problemów w rozwiązaniach 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 tworzenia 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 uruchomić go ponownie.
Jeśli próbujesz utworzyć projekt na poziomie dokumentu, możliwe jest, ż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 zostaną utracone podczas tworzenia nowego projektu na podstawie dokumentu z istniejącego projektu
Jeśli tworzysz nowy projekt pakietu Office na podstawie dokumentu z istniejącego projektu, właściwości wszystkich kontrolek, które znajdują się w dokumencie, nie są kopiowane do nowego projektu. Zresetuj właściwości wszystkich wstępnie istniejących kontrolek ręcznie. Alternatywnie można zachować właściwości kontrolki, tworząc kopię istniejącego projektu zamiast tworzyć nowy projekt lub ładując istniejący projekt do nowego rozwiązania (w projektancie) i 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 tworzysz nowy projekt skoroszytu programu Excel na podstawie istniejącego skoroszytu, może zostać wyświetlona kombinacja następujących błędów.
- W programie Excel: "Ostrzeżenie o ochronie 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 nie można usunąć przez inspektora dokumentów".
- W programie Visual Studio: "Nie można załadować poprawnie projektanta".
Te błędy mogą wystąpić podczas próby utworzenia projektu opartego na skoroszycie, który miał usunięte dane osobowe przy użyciu inspektora dokumentów. Aby uniknąć tego problemu, przed utworzeniem projektu wykonaj następujące kroki:
- Otwórz skoroszyt w programie Excel.
- W programie Excel otwórz Centrum zaufania.
- Na karcie Opcje prywatności wyczyść pole wyboru Usuń dane osobowe z właściwości pliku podczas zapisywania.
- Zapisz skoroszyt i zamknij program Excel.
Problem 4: Nie można otworzyć projektu po migracji
Po przeprowadzeniu migracji rozwiązania pakietu Office do pakietu Microsoft Office 2010 nie można otworzyć projektu na komputerze deweloperskim z zainstalowanym tylko systemem Microsoft Office 2007. Mogą zostać wyświetlone 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ć aplikacja pakietu Office licację firmy Microsoft skojarzona z tym typem projektu".
Aby rozwiązać ten problem, zmodyfikuj plik vbproj lub csproj . W przypadku projektu programu Word zastąp element HostPackage="{763FDC83-64E5-4651-AC9B-28C4FEB985A1}"
.HostPackage="{6CE98B71-D55A-4305-87A8-0D6E368D9600}"
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 element 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 już zainstalowanym pakietem Microsoft Office 2010.
Problem 5. Błędy w uaktualnionych projektach pakietu Office 2003 zawierających kontrolki formularzy systemu Windows
Jeśli uaktualnisz projekt pakietu Microsoft Office 2003 na poziomie dokumentu, a dokument zawiera kontrolki Windows Forms, uaktualniony projekt może zawierać błędy kompilowania lub środowiska uruchomieniowego. Aby uniknąć tego problemu, przed uaktualnieniem projektu zainstaluj program Visual Studio 2005 Tools for Office Second Edition Runtime na komputerze deweloperskim. 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żna odinstalować program Visual Studio 2005 Tools for Office Second Edition Runtime z komputera programistycznego, jeśli nie jest używany przez 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 załadować poprawnie projektanta
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, może istnieć inna akcja wymagana przed odpowiedzią programu Excel lub word.
- Projekt jest obecnie debugowany. Aby otworzyć projektanta, zatrzymaj lub zakończ debugowanie.
- Dodatek VSTO programu Excel zainstalowany na komputerze dewelopera 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. Nie można uzyskać dostępu do grupowanych kontrolek w oknie Właściwości 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 w szablonie programu Word nie są widoczne w programie Visual Studio
Jeśli otworzysz szablon programu Word w projektancie programu Visual Studio, kontrolki w szablonie, które nie są zgodne z tekstem, mogą nie być widoczne. Dzieje się tak, ponieważ program Visual Studio otwiera szablony programu Word w widoku Normalny . Aby wyświetlić kontrolki, wybierz menu Widok , wskaż widok programu Microsoft Office Word, a następnie wybierz pozycję Układ wydruku.
Problem 4. Wstawianie polecenia clipart nie działa 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, musisz otworzyć kopię skoroszytu lub dokumentu, który znajduje się w głównym folderze projektu (a nie kopii 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 w przypadku korzystania z języka C#
W niektórych przypadkach może zostać wyświetlony błąd kompilatora podobny do poniższego podczas próby uzyskania dostępu do określonego zdarzenia wystąpienia podstawowego zestawu międzyoperacyjnego pakietu Office (PIA) w projekcie visual C#.
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, które ma taką samą nazwę jak inna właściwość lub metoda obiektu. Aby uzyskać dostęp do zdarzenia, należy rzutować obiekt do interfejsu zdarzenia.
Typy pia pakietu Office, które mają zdarzenia implementują dwa interfejsy: podstawowy interfejs ze wszystkimi właściwościami i metodami oraz interfejs zdarzenia zawierający zdarzenia uwidocznione przez obiekt. Te interfejsy zdarzeń używają konwencji nazewnictwa _<objectname>Events n>Event<, takich jak AppEvents_Event i .ApplicationEvents2_Event Jeśli nie możesz uzyskać dostępu do zdarzenia, które ma znajdować się w obiekcie, odrzuć obiekt do interfejsu zdarzenia.
Na przykład Application obiekty mają NewWorkbook zdarzenie i NewWorkbook właściwość. Aby obsłużyć NewWorkbook zdarzenie, rzutuj element Application do 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 urzędach PIA pakietu Office, zobacz Omówienie klas i interfejsów w podstawowych zestawach międzyoperacyjnych pakietu Office.
Problem 2: Nie można odwołać się do klas PIA pakietu Office w projektach przeznaczonych dla programu .NET Framework 4 lub .NET Framework 4.5
W projektach przeznaczonych dla programu .NET Framework 4 lub .NET Framework 4.5 kod odwołujący się do klasy zdefiniowanej w usłudze Office PIA nie będzie domyślnie kompilowany. Klasy w jednostkach PIA używają klasy objectname> konwencji <nazewnictwa, takiej jak DocumentClass i WorkbookClass. Na przykład poniższy kod z projektu dodatku VSTO programu Word 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" nie jest dozwolone, gdy zestaw jest połączony przy użyciu trybu No-PIA.
- Visual C#: "Nie można osadzić typu międzyoperacyjności "Microsoft.Office.Interop.Word.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 DocumentClass obiektu, należy odwołać się do wystąpienia interfejsu Document .
Projekty przeznaczone dla programu .NET Framework 4 lub .NET Framework 4.5 automatycznie osadzają wszystkie typy międzyoperacyjności z pias pakietu Office domyślnie. Ten błąd kompilacji występuje, ponieważ funkcja osadzonych typów międzyoperacyjności działa tylko z interfejsami, a nie klasami. Aby uzyskać więcej informacji na temat interfejsów i klas w urzędach PIA pakietu Office, zobacz Overview of classes and interfaces in the Office primary interop assemblies (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ędzyoperacyjnej 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 Application, znajdują się w wielu przestrzeniach nazw, takich jak Microsoft.Office.Interop.Word i System.Windows.Forms. Z tego powodu instrukcja Import/using w górnej części szablonów projektów zawiera skróconą stałą kwalifikującą, na przykład:
To użycie instrukcji Import/using wymaga odróżnienia odwołań do klas pakietu Office z kwalifikatorem programu Word lub Excel, na przykład:
Jeśli używasz niekwalifikowanej deklaracji, wystąpią błędy, na przykład:
Mimo że zaimportowaliśmy przestrzeń nazw programu Word lub Excel i masz dostęp do wszystkich klas w niej, musisz w pełni zakwalifikować wszystkie typy z programem Word lub Excel, aby usunąć niejednoznaczność przestrzeni nazw.
Problemy podczas kompilowanie projektów
Podczas kompilowania 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 kompilować projektów na poziomie dokumentu, jeśli dokument ma ograniczone uprawnienia. Jeśli projekt zawiera dokument z ograniczonymi uprawnieniami, projekt nie zostanie skompilowany i zostanie wyświetlony następujący komunikat w oknie Lista błędów.
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, przed usunięciem kontrolki należy zawsze wybrać arkusz zawierający NamedRange kontrolkę , aby był on aktywnym arkuszem. Jeśli kod wygenerowany automatycznie nie zostanie usunięty po usunięciu kontrolki, możesz spowodować, że projektant usunie kod, uaktywniając arkusz i wprowadzając zmianę tak, aby arkusz został oznaczony jako zmodyfikowany. Po odbudowaniu projektu kod zostanie usunięty.
Problemy podczas debugowania projektów
Podczas debugowania projektów pakietu Office mogą wystąpić następujące problemy.
Problem 1. Monit o odinstalowanie jest wyświetlany podczas publikowania i instalowania rozwiązania na komputerze dewelopera
Podczas debugowania rozwiązania pakietu Office może zostać wyświetlony następujący błąd.
Nie można zainstalować dostosowania, ponieważ jest obecnie zainstalowana inna wersja i nie można jej uaktualnić z tej lokalizacji.
Ten błąd wskazuje, że wcześniej opublikowano i zainstalowano rozwiązanie pakietu Office na komputerze deweloperskim. Aby zapobiec pojawieniu się 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 dewelopera, 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 tworzysz 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 prawidłowe zamknięcie programu. Jeśli tworzysz wątki w rozwiązaniu, należy nazwać każdy wątek prefiksem VSTA_, aby upewnić się, że te wątki są obsługiwane prawidłowo podczas zatrzymywania debugowania. Można na przykład ustawić Name
właściwość wątku, który czeka na zdarzenie sieciowe na VSTA_NetworkListener.
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 narzędzia Fusion, modułu ładującego zestaw .NET Framework, aby buforować zestawy 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 kopii w tle.
Problem 5: Błąd podczas zatrzymywania debugera w projekcie na poziomie dokumentu po użyciu opcji Edytuj i kontynuuj
Jeśli używasz opcji Edytuj i Kontynuuj , aby wprowadzić zmiany w kodzie w projekcie na poziomie dokumentu dla programu Excel lub Word, gdy projekt jest w trybie przerwania, może zostać wyświetlone okno dialogowe z następującym komunikatem o błędzie, jeśli zatrzymasz debuger.
Zakończenie procesu w bieżącym stanie może spowodować niepożądane wyniki, w tym utratę danych i niestabilności systemu.
Niezależnie od tego, czy w oknie dialogowym wybrano opcję Tak , czy Nie , program Visual Studio kończy proces programu Excel lub Word i zatrzymuje debuger. Aby zatrzymać debugowanie projektu bez wyświetlania tego okna dialogowego, zamknij program Excel lub program Word bezpośrednio, a nie zatrzymaj debugera w programie Visual Studio.