Развертывание ClickOnce для службы терминалов с получением ошибки COM

Я развернул настольное приложение, использующее сторонние библиотеки 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), поскольку в настоящее время у нас есть толстые клиенты, а тонкие клиенты будут медленно интегрироваться с течением времени.


person Stevoni    schedule 22.07.2010    source источник


Ответы (2)


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

person RobinDotNet    schedule 23.07.2010

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

Решение заключалось в том, чтобы добавить в проект упомянутые библиотеки DLL в качестве связанных элементов и изменить свойства на:

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

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

person Stevoni    schedule 16.08.2010