Подтвердить что ты не робот

Сообщение об ошибке "Не удается установить или запустить приложение. Приложение требует stdole Version 7.0.3300.0 в GAC".

Когда один пользователь пытается запустить приложение, наше приложение ClickOnce сообщает:

Не удается установить или запустить приложение. Для приложения требуется stdole Version 7.0.3300.0 в GAC.

Интересно отметить, что в GAC (C:\Windows\assembly) не установлен stdole. Как мне его получить?

Мы используем .NET 3.5, и он был установлен на этом компьютере.

4b9b3361

Ответ 1

Итак, получается, что файлы .NET были скопированы в C:\Program Files\Microsoft.NET\Primary Interop Assemblies\. Однако они никогда не регистрировались в GAC.

Я закончил вручную перетаскивание файлов в C:\Program Files\Microsoft.NET\Primary Interop Assemblies в C:\windows\assembly, и приложение работало на этой проблемной машине. Вы также можете сделать это программно с помощью Gacutil.

Итак, похоже, что что-то случилось с .NET во время установки, но это, похоже, исправляет проблему. Я надеюсь, что это поможет кому-то еще!

Ответ 2

Попробуйте перейти на вкладку "Опубликовать" в свойствах проекта, а затем нажмите кнопку "Файлы приложений". Затем установите следующие свойства:

  • Имя файла stdole.dll
  • Опубликовать статус для включения
  • Загрузить группу в требуемый

После этого вам нужно повторно опубликовать свое приложение.

Если ссылка имеет CopyLocal = true, эта ссылка будет опубликована вместе с приложением. Если ссылка имеет CopyLocal = false, ссылка будет помечена как обязательное условие. Это означает, что сборка должна быть установлена ​​в клиентском GAC до того, как приложение ClickOnce будет установлено.

Существуют некоторые сборки, которые устанавливаются в GAC из-за установки Visual Studio, а не для установки .NET Framework. Это может быть ваша ситуация.

Ответ 3

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

Примечание.. Прежде чем применять это решение, убедитесь, что вы уже (как и я), проверили все ваши проекты решений и не нашли ссылок на stdole.dll сборка.

1 - находится файл stdole.dll;

2 - изменил статус Опубликовать на Исключить

3 - После этого вам нужно опубликовать свое приложение.

Эта проблема произошла на Visual Studio 2012 после ее миграции из Visual Studio 2010.

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

Ответ 4

У меня была та же проблема с развертыванием ClickOnce.

Я решил проблему, перейдя на вкладку "Опубликовать" в свойствах проекта, а затем выбрав кнопку "Файлы приложений".

Затем я выбрал следующие опции:

  • 'Имя файла' 'stdole.dll'
  • "Опубликовать статус" в "Включить" и
  • 'Загрузить группу' в 'Обязательно'.

Это исправило мою проблему при повторном опубликовании.

Надеюсь, это поможет вам: D

Ответ 5

У нас была та же проблема с нашим приложением ClickOnce, которое использует Interop с Microsoft Office. Это произошло только на нескольких компьютерах в компании.

Лучшим решением, которое мы выяснили, было изменение установки MS Office на проблемных компьютерах (через панель "Программы и компоненты" ) и убедиться, что "функция программирования .NET" (не уверена в имени компонента - наши версии Microsoft_Office не являются Английский) был установлен для каждого из приложений MS Office (Excel, Word, Outlook и т.д.). Это, похоже, не включено в установку по умолчанию.

Тогда проблема с stdole.dll была исправлена.

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

Ответ 6

Ну, вы не можете установить GAC с помощью ClickOnce. Это описано в этой статье MSDN.

Ответ 7

Проверьте, действительно ли вы используете ссылку EnvDTE. Если нет, удалите его и перекомпилируйте.

Ответ 8

Интересно, у меня не было никаких ссылок на stdole в моем проекте, но у меня был пользователь, все еще получавший ошибку. Мне пришлось добавить ссылку, а затем изменить настройку для включения. Надеюсь, что это сработает.

Ответ 9

В H2oRider - ваше приложение получает доступ к dll Oracle в GAC? Я рекомендую вам следующее: добавьте dll в свой проект и установите действие сборки в "content" и установите "copy to output directory" для "копирования всегда".

Затем удалите ссылки (ссылки) на dll в GAC. Повторно добавьте ссылку, но на этот раз перейдите к той, которую вы только что добавили в свой проект.

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

Если это не сработает, возможно, вы не сможете использовать эту DLL, если она включена локально, а не в GAC. Это касается некоторых сборок, таких как Office PIA. В этом случае единственный способ его развертывания - обернуть его в пакет установки и развертывания и использовать генератор манифеста Bootstrapper, чтобы превратить его в необходимое условие, которое вы можете опубликовать при развертывании ClickOnce.

Ответ 10

Мое решение: я открыл папку с рекомендациями в обозревателе решений (показывая все файлы) и для каждой сборки, на которую жаловалась установка (имя сборки может быть не таким же, как имя файла сборки - внутри объекта explorer, но достаточно легко понять), я изменил Копировать Локальный на Истину. В конце концов мне нужно было сделать это с каждой установкой Microsoft Office/COM.