Поделиться через


Устранение неполадок в Office во время выполнения

Обновлен: Ноябрь 2007

Если во время построения решения Microsoft Office выдает сообщения об ошибке или конечные пользователи уведомляют об ошибках, причиной может быть одна из следующих распространенных проблем.

Невозможно загрузить среду CLR или платформу Microsoft .NET Framework

В результате возникновения данной проблемы отображается следующее сообщение об ошибке:

<application> не может загрузить среду CLR. Обратитесь к администратору за дальнейшей помощью.

Версия платформы Microsoft .NET Framework должна быть такой же или более поздней, чем версия платформы, использованная для разработки решения. Дополнительные сведения об установке платформы .NET Framework и среды CLR см. на веб-странице Загрузки Microsoft .NET Framework.

Для пользовательских макросов требуется среда CLR

В результате возникновения данной проблемы отображается следующее сообщение об ошибке.

Для пользовательского макроса данного документа требуется установить среду CLR версии 2.0. Обратитесь к администратору за дальнейшей помощью.

Пользовательские макросы в данном примере означают управляемую сборку. Возможно, компьютере конечного пользователя установлена версия Microsoft .NET Framework, которая несовместима с данным решением. Необходимо установить такую же или более позднюю версию платформы .NET Framework, чем версия, использованная для разработки решения. Установка может быть произведена параллельно с существующей версией. Дополнительные сведения об установке платформы .NET Framework и среды CLR см. на веб-странице Загрузки Microsoft .NET Framework.

Политика безопасности не позволяет запустить сборку

В результате возникновения данной проблемы отображается следующее сообщение об ошибке:

Текущая политика безопасности .NET не позволяет запустить <assembly> из папки <path>. Не изменяйте политику безопасности на своем компьютере. Политика безопасности .NET контролируется администратором или разработчиком, прописавшим пользовательский макрос. Документ по-прежнему можно редактировать и сохранять. Обратитесь к администратору или автору документа за дальнейшей помощью.

Пользовательские макросы в данном примере означают управляемую сборку. Сборка может представлять потенциальную угрозу. Если вы уверены в надежности сборки, перед ее запуском установите режим полного доверия в политике безопасности .NET. Дополнительные сведения см. в разделе Практическое руководство. Предоставление разрешений папкам и сборкам (Система 2003).

Политика безопасности не позволяет документу загрузить сборку

В результате возникновения данной проблемы отображается следующее сообщение об ошибке:

Текущая политика безопасности .NET не позволяет документу <document> загрузить пользовательские макросы. Не изменяйте политику безопасности на своем компьютере. Политика безопасности .NET контролируется администратором или разработчиком, прописавшим пользовательский макрос. Документ по-прежнему можно редактировать и сохранять. Обратитесь к администратору или автору документа за дальнейшей помощью.

Пользовательские макросы в данном примере означают управляемую сборку. Вероятнее всего, документ был открыт из ненадежного источника или вложения электронной почты и может представлять потенциальную угрозу. Если вы уверены в надежности документа, сохраните его на компьютер, а затем откройте его. После того как документ сохранен на компьютере, он находится в каталоге "Мой компьютер", который имеет полное доверие. Если документ является вложением электронной почты, он находится в зоне интернета, не имеющей полного доверия.

Также возможно, что на компьютере раньше была установлена подходящая версия платформы Microsoft .NET Framework, однако, впоследствии была удалена перед запуском решения. Если параллельно установить 2 версии .NET Framework, а затем удалить одну из них, вместо сообщения о том, что не установлена необходимая версия .NET Framework, появится сообщение о безопасности. Чтобы запустить решение, необходимо установить .NET Framework.

Дополнительные сведения см. в разделе Требования безопасности при выполнении решений Office (для системы 2003).

Когда сборка проекта имеет полное доверие, появляется исключение безопасности

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

Если решение было построено на компьютере разработчика, всем сборкам, на которые ссылается проект и которые находятся в папке назначения проекта, предоставляются разрешения на выполнение. Только главной сборке проекта автоматически предоставляется полное доверие.

Не удается найти или загрузить сборку

В результате возникновения данной проблемы отображается следующее сообщение об ошибке.

Невозможно найти или загрузить сборку настройки. Документ по-прежнему можно редактировать и сохранять. Обратитесь к администратору или автору документа за дальнейшей помощью.

Чтобы устранить эту неполадку, выполните следующие действия.

  • Убедитесь в том, что пользователь имеет доступ к расположению сборки, и что названная сборка существует. Дополнительные сведения см. в разделе Общие сведения об использовании сборок в решениях Office.

  • Если сборка доступна, проверьте, запущена ли в Word или Excel настройка, например надстройка, смарт-тег или смарт-документ, которые явным образом загрузили версию .NET Framework CLR, несовместимую с выполнением Visual Studio Tools for Office. Чтобы устранить эту проблему, отключите все настройки, которые загружают версию .NET Framework CLR, не соответствующую среде выполнения вашего решения.

    Запущенное приложение может загрузить только один экземпляр .NET Framework CLR. Если настройка принуждает Word или Excel загрузить более раннюю версию .NET Framework CLR, решения Visual Studio Tools for Office не смогут произвести загрузку.

  • Убедитесь в том, чтобы загрузке не препятствовало необработанное исключение в сборке настройки. Выполните отладку решения, установив отладчик на прерывание исключений общеязыковой среды или выбрав параметр Прерывать выполнение, когда исключения пересекают границу AppDomain или границу между управляемым и машинным кодом в диалоговом окне Параметры. Дополнительные сведения см. в разделах Практическое руководство. Обработка ошибок в проектах Office и Страница "Общие", папка "Отладка", диалоговое окно "Параметры".

Невозможно инициализировать сборку

В результате возникновения данной проблемы отображается следующее сообщение об ошибке:

Невозможно правильно инициализировать пользовательский макрос в <project>. Документ по-прежнему можно редактировать и сохранять. Обратитесь к администратору или автору документа за дальнейшей помощью.

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

Причиной данной ошибки может быть следующее.

  • Основная сборка проекта Office имеет частичное доверие. Например, если проект создается в сетевой папке, имеющей разрешения только зоны интрасети в политике безопасности на уровне компьютера, сообщение об ошибке будет отображаться, даже если на уровне пользователя предоставлен режим полного доверия. Сборка загружается без предупреждения о безопасности, однако поскольку политика на уровне компьютера имеет больше ограничений, сборка не имеет необходимых разрешений для доступа к объектной модели Office (для которой требуется полное доверие), и, следовательно, сборка не инициализируется. Администратор сети должен предоставить полное доверие на уровне компьютера, если пользователь работает со сборкой, которая хранится не на его локальном компьютере. Дополнительные сведения см. в разделе Требования безопасности при выполнении решений Office (для системы 2003).

  • Основная сборка взаимодействия для указанного компонента COM не установлена в глобальном кэше сборок перед добавлением ссылки. Visual Studio создает сборку взаимодействия, которая может не полностью работать в некоторых условиях, и помещает сборку в каталог проекта вместо глобального кэша сборок.

Ссылка на правильную сборку взаимодействия

  1. В своем проекте найдите все ссылки на компоненты COM (например, приложения Office), для которых значение свойства Копировать локально установлено на True.

  2. Щелкните ссылку правой кнопкой мыши и в появившемся контекстном меню выберите команду Удалить.

  3. Запустите компонент Установка и удаление программ и установите основную сборку взаимодействия для компонента в глобальный кэш сборок. Дополнительные сведения см. в разделе Практическое руководство. Установка основных сборок взаимодействия Microsoft Office.

  4. Откройте проект в Visual Studio и добавьте новую ссылку на компонент. Дополнительные сведения см. в разделе Практическое руководство. Обращение к приложениям Office с помощью основных сборок взаимодействия.

Сборка недоступна для использования в автономном режиме.

В данной ситуации отображается следующее сообщение:

Пользовательский макрос в <path> недоступен в автономном режиме. Подключиться, чтобы загрузить настройку? Это может повлиять на другие программы, запущенные на компьютере, например на Internet Explorer.

Пользовательский макрос в данном примере означают управляемую сборку. Это сообщение отображается, когда компьютер работает в автономном режиме, а в кэше не имеется копии необходимой сборки. Для работы в автономном режиме должны быть выполнены следующие условия.

  • Сборка должна быть расположена на веб-сервере.

  • Доступ к сборке должен осуществляться через пути HTTP или HTTPS в настраиваемых свойствах.

Чтобы кэшировать сборку, отвечающую вышеизложенным требованиям, необходимо подключиться к сети и открыть документ Office, чтобы, по крайней мере, один раз загрузить копию сборки. После этого сборка становится доступной для использования в автономном режиме Дополнительные сведения см. в разделах Автономные модели для решений Office (системы 2003) и Практическое руководство. Развертывание автономного использования документов (2003 System).

Работа других приложений может быть затронута, поскольку на компьютере может быть использован только один режим — автономный или подключение к сети. Если в меню Файл приложения Internet Explorer выбран параметр Работать автономно, все приложения переходят в автономный режим.

Сборка недоступна при сетевом подключении

В данной ситуации отображается следующее сообщение.

Пользовательский макрос в <path> недоступен при подключении к сети, однако доступна локальная копия. Отключиться и использовать кэшированную копию? Это может повлиять на другие программы, запущенные на компьютере, например на Internet Explorer.

Пользовательский макрос в данном примере означают управляемую сборку. Это сообщение появляется, когда компьютер не подключен к сети или сеть недоступна, а компьютер продолжает быть в онлайн-режиме. При нажатии кнопки компьютер переходит в автономный режим и использует кэшированную копию сборки. Чтобы иметь доступ к кэшированной сборке, необходимо перевести компьютер в автономный режим, щелкнув кнопку в этом диалоговом окне или выбрав в меню Файл приложения Internet Explorer параметр Работать автономно. Дополнительные сведения см. в разделах Автономные модели для решений Office (системы 2003) и Практическое руководство. Развертывание автономного использования документов (2003 System).

Работа других приложений может быть затронута, поскольку на компьютере может использоваться только один режим — автономный или подключение к сети. Если на компьютере выбран параметр "Работать автономно", все приложения переходят в автономный режим.

Невозможно загрузить сборку

В результате возникновения данной проблемы отображается следующее сообщение об ошибке.

Невозможно загрузить тип <projectname> из сборки <assemblyname>.

Причиной появления этого сообщения может быть использование Obfuscator для кода решения. Запутывание кода изменяет имена всех классов. Однако исходные имена классов отображены в манифесте, и Obfuscator их не изменяет.

Чтобы предотвратить данную ошибку, добавьте имена классов листа или книги в список Obfuscator, чтобы не переименовывать их.

Региональные настройки затрагивают некоторые методы Excel и приводят к возвращению ошибки

Если языковой стандарт, выбранный в региональных настройках конечного пользователя, не соответствует установленному языку Microsoft Office Excel 2003, при вызове некоторых методов и свойств Excel могут произойти следующие ошибки.

В mscorlib.dll произошло исключение первого шанса типа 'System.Runtime.InteropServices.COMException'.

Дополнительная информация: исключение из HRESULT: 0x800A03EC.

—или—

В ExcelProject.dll произошло исключение первого шанса типа 'System.Runtime.InteropServices.COMException'.

Дополнительная информация: старый формат или недопустимая библиотека типов.

Дополнительные сведения об устранении этой неполадки см. в разделе Глобализация и локализация решений Microsoft Office.

Документ Office открывается без ошибок, но код не выполняется

Причиной того, что код не запускается без появления сообщения об ошибке, может быть следующее.

  • В глобальном кэше сборок не установлены основные сборки взаимодействия, возможно, из-за того, что на компьютере не установлена платформа .NET Framework, или в программе установки Office сборки помечены как Недоступные.

  • Используемая версия Word или Excel не поддерживает решения Visual Studio Tools for Office. Конечные пользователи должны установить Word или Excel из выпуска Microsoft Office 2003, поддерживающего Visual Studio Tools for Office. Дополнительные сведения см. в разделе Практическое руководство. Установка средств Visual Studio Tools for Office для разработки решений Microsoft Office 2003.

  • Документ открыт из расположения HTTP или HTTPS, но в Windows Explorer не выбран параметр Просматривать в том же окне для файлов .doc или .xls. Данный параметр используется обозревателем Internet Explorer, чтобы определить, находится ли документ внутри текущего окна или в отдельном окне. Если документ размещен в отдельном окне, настройки не загружаются и не запускаются. Чтобы получить доступ к параметру Просматривать в том же окне для документа Word или Excel, откройте Windows Explorer, щелкните меню Инструменты и выберите в нем Свойства папки. На вкладке Типы файлов в списке типов файлов выберите DOC или XLS, щелкните Дополнительно и убедитесь, чтобы там был выбран параметр Просматривать в том же окне.

  • Проект документа Word открыт в Visual Studio на том же компьютере. Закройте Visual Studio и повторно откройте документ.

Дополнительные сведения см. в разделе Отладка в проектах уровня документа.

Задана высокая безопасность макросов, однако код по-прежнему запускается

Решение Microsoft Office 2003, созданное с расширениями управляемого кода, выполняется, даже если настройки Безопасности в приложении Office установлены на значение Высокий. Это происходит потому, что политикой безопасности управляемого кода сборки управляет платформа Microsoft .NET Framework, а не Microsoft Office Word 2003 или Microsoft Office Excel 2003. Однако существует несколько способов открыть документ или книгу, содержащую расширения управляемого кода, не запуская код сборки. Дополнительные сведения см. в разделе Практическое руководство. Открытие решений Office без выполнения кода.

Приложения Excel и Word неожиданно закрываются, когда происходит необработанное исключение на немодальной форме

Если приложение Excel или Word неожиданно закрывается при вызове события на немодальной форме, проверьте, существуют ли участки в коде, где могут возникнуть необработанные исключения. Добавьте обработку ошибок, чтобы информация не была утеряна.

Надстройка Outlook не загружается или отключена

Существует несколько способов проверки правильности загрузки надстройки Outlook.

  • Если Microsoft Office Outlook неожиданно завершает работу или происходит ошибка при инициализации надстройки, Outlook может отключать надстройку. Дополнительные сведения см. в разделе Практическое руководство. Повторное включение надстройки, которая была отключена.

  • Если файл манифеста надстройки расположен не в той же папке, что и сборка надстройки, в загрузке надстройки Outlook может произойти сбой. При развертывании файла манифеста в другой каталог, необходимо обновить атрибут codebase элемента asmv2:installFrom в файле манифеста надстройки, чтобы указать расположение сборки надстройки.

  • Outlook может запускать надстройку, которая явным образом загружает версию .NET Framework CLR, несовместимую со средой выполнения Visual Studio Tools for Office. Для устранения этой проблемы отключите надстройку, которая явным образом загружает несовместимую версию .NET Framework.

    Запущенное приложение может загрузить только один экземпляр .NET Framework. Если надстройка принуждает Outlook загрузить более раннюю версию .NET Framework, тогда невозможно будет произвести загрузку надстроек, созданных с помощью Visual Studio Tools for Office.

Дополнительную информацию об устранении этой неполадки можно получить с помощью настройки переменных среды, за счет которых Visual Studio Tools for Office отображает подробные сообщения об ошибке и записывает все действия в файл журнала. Дополнительные сведения см. в разделе Отладка в проектах на уровне приложения.

Невозможно установить надстройку Outlook с помощью диалогового окна "Надстройки COM"

Не используйте диалоговое окно Надстройки COM для установки надстроек Outlook, созданных с помощью Visual Studio Tools for Office. Используйте проект развертывания, включенный в шаблон проекта Outlook. Надстройки Outlook используют прокси-файл .dll с именем AddinLoader.dll для расширения функциональных возможностей Outlook. Прокси позволяет управляемой сборке взаимодействовать с Outlook посредством COM. Дополнительные сведения см. в разделе Развертывание надстроек уровня приложения (система 2003).

Невозможно добавить пользовательские страницы свойств в надстройки Outlook

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

Сделать пользовательскую страницу свойств видимой для COM можно двумя способами.

  • Добавьте ComVisibleAttribute в класс, который реализует пользовательскую страницу свойств в проекте. Дополнительные сведения о применении атрибутов к классам см. в разделе Применение атрибутов.

  • Используйте Visual Studio, чтобы сделать всю сборку надстройки видимой для COM.

    Использование Visual Studio, для того чтобы сделать сборку надстройки видимой для COM

    1. В Обозревателе решений Visual Studio щелкните проект правой кнопкой мыши и выберите Свойства.

    2. Перейдите на вкладку Приложение.

    3. Нажмите кнопку Сведения о сборке.

    4. Поставьте флажок рядом с параметром Предоставить модели COM доступ к сборке.

    5. Нажмите кнопку OK.

Событие Quit не возникает в надстройках Outlook

При создании обработчика событий для события Quit класса Microsoft.Office.Tools.Outlook.Application в надстройке Outlook обработчик событий не будет запускаться. При закрытии экземпляра Outlook, запускающего надстройку, созданную с помощью Visual Studio Tools for Office, надстройка выгружается, перед тем как принять событие Quit. В качестве альтернативы можно поместить код, который необходимо запустить при закрытии Outlook, в обработчике события ThisAddIn_Shutdown проекта. Дополнительные сведения см. в разделах Шаблоны проектов надстроек для Microsoft Office 2007 и Шаблоны проектов надстроек для Microsoft Office 2003.

Закрытие метода приводит к тому, что Word и Excel неожиданно завершают работу

При вызове метода Close объекта Workbook приложения Excel или объекта Document приложения Word из немодальной формы, приложение может неожиданно завершить работу. Все открытые документы или книги закрываются, и информация может быть утеряна. Если Microsoft Office Outlook использует Word в качестве редактора сообщений электронной почты, все открытые сообщения также могут быть закрыты. Это может произойти, если при обработке события AppDomain.DomainUnload отображаются элементы Windows Forms или окна сообщений.

Чтобы устранить эту проблему, не нужно вызывать метод Close из немодальной формы или событие для немодальной формы. Вместо этого выполните следующие действия.

  • Используйте модальные формы (например, с помощью ShowDialog вместо Show), если необходимо закрыть документ из формы.

  • Если нужно использовать немодальную форму, убедитесь во том, что немодальная форма закрыта и ссылки на формы полностью удалены, перед тем как закрывать документ или книгу. См. пример в следующем коде:

    Dim form1 As SampleForm
    
    Sub OpenForm()
        form1 = New SampleForm
        form1.Show()  ' Show the form modelessly.
    End Sub
    
    Sub ForceShutdown()
    
        ' Completely close the form if it is still running.
        ' Note that hiding the form might not work by itself.
    
        If (Not form1 Is Nothing) Then
            form1.Close()
            form1.Dispose()
            form1 = Nothing
        End If
    
        Me.Close()
    End Sub
    
    SampleForm form1;
    
    private void OpenForm()
    {
        form1 = new SampleForm();
        form1.Show();  // Show form modelessly.
    }
    
    private void ForceShutdown()
    {
        // Completely close the form if it is still running.
        // Note that hiding the form might not work by itself.
    
        if (form1 != null)
        {
            form1.Close();
            form1.Dispose();
            form1 = null;
        }
        object saveChanges = Word.WdSaveOptions.wdSaveChanges; 
        this.Close(ref saveChanges, ref missing, ref missing);
    }
    

Дополнительные сведения о передаче параметра missing в C# см. в разделе Общие сведения о необязательных параметрах в решениях Office.

При выборе параметра "Отмена" в диалоговом окне SaveAs появляется ошибочное предупреждение, или приложение Word неожиданно закрывается

Если метод SaveAs, открывающий диалоговое окно, вызывается внутри обработчика событий DocumentBeforeSave класса ThisDocument и параметру Cancel присваивается значение false, то приложение может неожиданно завершить работу. Если параметру Cancel присвоить значение true, то появится сообщение об ошибке, указывающее, что автосохранение отключено.

Неожиданное поведение элементов управления Windows Forms при использовании окна листа Excel с разделением

Если разделить окно листа, содержащее элементы управления Windows Forms controls, они могут вести себя неодинаково в разных окнах. Например, если запустить код для изменения свойства BackColor элемента управления TextBox в листе, изменения могут отображаться только в одном окне.

При передаче элемента управления ведущего приложения Excel в метод возникает InvalidCastException.

Для некоторых методов и свойств в Excel требуется передача собственного объекта Office. Если значение атрибута ExcelLocale1033Attribute установлено на false, и выполняется передача в элемент управления ведущего приложения, который основывается на собственном объекте Office, возникает InvalidCastException. Для передачи собственных объектов Office этим методам и свойствам можно использовать свойство InnerObject. Дополнительные сведения об особенностях локализации Excel см. в разделе Форматирование данных в Excel при помощи различных региональных параметров.

Невозможно выполнить привязку данных ListObject при отображенном модальном диалоговом окне

Если приложение Excel отображает модальное диалоговое окно во время обновления набора данных, для которых выполняется привязка к ListObject, в процессе привязки данных ListObject происходит сбой. Когда объект ListObject теряет привязку данных, вызывается событие DataBindingFailure. Чтобы выполнить повторную привязку объекта ListObject к источнику данных, необходимо обработать событие DataBindingFailure и вызвать метод SetDataBinding.

При двойном щелчке манифеста развертывания происходит ошибка

Если дважды щелкнуть манифест развертывания, отображается следующее сообщение:

Продолжение невозможно. Неправильный формат приложения. Обратитесь за помощью к поставщику приложения.

В отличие от развертывания ClickOnce решение Visual Studio Tools for Office невозможно запустить с помощью двойного нажатия манифеста развертывания. Чтобы запустить решение, откройте приложение Office. Для Word и Excel откройте документ решения внутри приложения. или дважды щелкните файл документа.

Дополнительные сведения о развертывании решений Visual Studio Tools for Office см. в разделах Развертывание настроек уровня документа (системы 2003) и Развертывание надстроек уровня приложения (система 2003). Дополнительные сведения о манифестах развертывания см. в разделе Манифесты развертывания для решений Office (2003 система).

См. также

Задачи

Устранение неполадок в Visual Studio во время разработки

Основные понятия

Общие задачи программирования Office

Другие ресурсы

Устранение неполадок при работе с решениями Office