Развертывание ClickOnce для терминальной службы, получающей ошибку COM - PullRequest
0 голосов
/ 22 июля 2010

Я развернул настольное приложение, использующее сторонние dll, на тестовом терминальном сервере, чтобы сообщить о его жизнеспособности. В моем тестировании я получил эту ошибку:

An unhandled exception of type 'System.IO.FileNotFoundException' occurred in General Purpose.dll

Additional information: Creating an instance of the COM component with CLSID {8EB296F1-6C46-4BC1-9F00-B49F14B57DB8} from the IClassFactory failed due to the following error: 800a0035.

Это происходит, когда создается новый сторонний класс (тот, который жизненно важен для приложения). Насколько я могу судить, это единственный сторонний класс, имеющий такие проблемы, но единственный в этой DLL.

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

Все библиотеки DLL установлены как «Копировать локально», и я подтвердил, что они были скопированы в папку «Apps \ 2.0 \ crazylongnamehere» локальных настроек пользователя.

Я решил пойти по пути публикации (через MSI), так как у нас в настоящее время есть толстые клиенты, и тонкие клиенты будут медленно интегрироваться со временем.

Ответы [ 2 ]

0 голосов
/ 16 августа 2010

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

Решением было добавление ссылочных dll-файлов в проект в виде связанных элементов и изменение свойств на:

  • Действие построения: содержимое
  • Копировать в каталог выводаКопировать всегда

Как только они были обновлены, все работало правильно.

0 голосов
/ 23 июля 2010

Если вы находитесь на одном из этих терминальных серверов и углубляетесь в кэш ClickOnce и дважды щелкаете файл [exe], это работает?Или это сбой?Требуются ли какие-либо привилегии, чтобы делать то, что вы пытаетесь сделать?

...