Вопрос

Я перепробовал практически все, чтобы запустить наше приложение ClickOnce VB.NET в службах терминалов в качестве удаленного приложения.У меня есть пакетный файл, который запускает файл .application для приложения.

Это прекрасно работает через сеанс RDP desktop на сервере терминалов.Как удаленное приложение TS, однако, хорошо...не так уж и много.

Я получаю быструю вспышку командной строки (пакетного файла) в клиентской системе, а затем...ничего...

То же самое касается указания на файл .application напрямую (без использования пакетного файла) или даже локального копирования публикации и указания на это.

Я нашел technet.microsoft.com обсуждалась аналогичная проблема, но в списке нет ее решения.

Для всех, кто сталкивался с этим раньше и заставлял это работать, что вам нужно было сделать?

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

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

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

Это было полезно?

Решение

Ключом к тому, чтобы заставить его работать, является использование проводника Windows "C:\windows\explorer.exe".Этот процесс является базовым при входе в полный сеанс.

Если вы настроите RemoteApp на использование проводника Windows и аргумента командной строки пути к файлу .application для приложения ClickOnce, то оно будет работать при запуске в качестве удаленного приложения.Проводник Windows будет мигать на секунду при запуске, но затем исчезнет, после чего запустится приложение ClickOnce.

Другие советы

Почему это должно быть приложение ClickOnce?Я бы рассмотрел возможность простого развертывания exe-файла и сборок.

Я знаю, что это только половина решения, но если приложение не сильно изменится, это может быть хорошим решением.

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

Смотрите эту ссылку для получения дополнительной информации.

http://msdn.microsoft.com/en-us/library/267k390a (ПРОТИВ 80).aspx

Возможно, нет способа сделать это :(

Можете ли вы запустить файл .exe напрямую?Он скрыт под вашим профилем в \AppData\Local\Apps \ 2.0 [запутанные папки], но вы должны быть в состоянии его найти.

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

Столкнулся с той же проблемой этим утром и решил ее, скопировав каталог приложения clickonce из папки пользовательских настроек куда-нибудь вроде c:\MyApp \ - Я знаю, что это неприятно и не очень идеально..но для меня этого достаточно!

Недавно мы столкнулись с этой проблемой и решили отправить отчет об ошибке по этой проблеме команде разработчиков Visual Studio.Не стесняйтесь комментировать сообщение об ошибке.Должно быть, это ошибка в ClickOnce, вызванная некоторыми изменениями в Server 2008.

https://connect.microsoft.com/VisualStudio/feedback/details/653362/net-clickonce-deployment-not-working-as-remoteapp-or-citrix-xenapp-on-server-2008-server-2008-r2

У нас также есть обсуждение этого вопроса на форумах MSDN:

http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/7f41667d-287a-4157-be71-d408751358d9/#92a7e5d9-22b6-44ba-9346-ef87a3b85edc

Попробуйте использовать RegMon и FileMon при запуске приложения - возможно, вам удастся отследить это из-за проблемы с правами доступа к файлам и / или реестру.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top