2008-09-19 3 views
3

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

Это нормально работает через сеанс рабочего стола RDP на сервере терминалов. Однако, как TS RemoteApp, хорошо ... не так много.

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

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

Я нашел technet.microsoft.com обсуждение подобной проблемы, но в этом нет никаких разрешений.

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

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

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

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

ответ

8

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

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

1

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

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

+1

Кодовая база изменяется довольно регулярно. Мы используем его и внутри нашей интрасети. Используя ClickOnce, мы можем гарантировать, что все клиенты всегда получат последний код, имеют какие-либо необходимые библиотеки и т. Д. Все с очень небольшим количеством хлопот. – 2008-09-22 03:07:53

1

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

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

http://msdn.microsoft.com/en-us/library/267k390a(VS.80).aspx

Там не может быть способ сделать это :(

+0

При запуске в качестве сеанса удаленного рабочего стола развертывание ClickOnce действительно работает, но ... При запуске в качестве RemoteApp в клиентской системе выполняется проверка на наличие ошибок, а затем ничего. – 2009-01-27 19:30:37

0

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

+0

Имейте в виду, что это как RemoteApp, а не полный сеанс удаленного рабочего стола, который работает отлично. – 2009-01-28 20:29:22

0

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

+0

К сожалению, для этой ошибки не создаются журналы событий. Просто события, которые вы увидите, связанные с любым другим типичным логином. – 2009-01-28 20:49:47

1

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

Это пропустит встроенный процесс обновления, но если его можно запустить таким образом, вы сможете после этого после этого начать write code to do a manual update.

+1

Да. Приложение запускается с помощью этого метода. Основное ограничение заключается в том, что он работает только в том случае, если пользователь запустил приложение хотя бы один раз, я думаю ... Но, все же, я думаю, это начало ... – 2009-02-03 16:41:44

+0

Я пошел вперед и дал вам щедрость, так как ваше решение по крайней мере, получил его для загрузки. Теперь мне просто нужно выяснить способ справиться с этим первым запуском ... Вход в систему, поскольку пользователь, вероятно, не практичен. – 2009-02-03 16:47:23

+0

Итак, каждый пользователь должен ссылаться на свой .exe? Могут ли все ссылки на один .exe? При попытке сделать это могут возникнуть проблемы с безопасностью. Извините за все вопросы, но TS RemoteApps запрещены с моего рабочего компьютера. – codeConcussion 2009-02-03 16:54:04

1

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

1

Мы недавно столкнулись с этой проблемой и решили опубликовать отчет об ошибке этой проблемы для команды разработчиков Visual Studio. Не стесняйтесь комментировать отчет об ошибке. Она должна быть ошибка в ClickOnce вызвана некоторыми изменениями в сервере 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