ClickOnce Online-Only Application作为TS RemoteApp

时间:2008-09-19 22:34:47

标签: vb.net clickonce remoteapp

我尝试了一切让我们的ClickOnce VB.NET应用程序作为RemoteApp在终端服务下运行。我有一个批处理文件,用于运行应用程序的.application文件。

通过终端服务器上的RDP桌面会话可以正常工作。然而,作为TS RemoteApp,不是那么多。

我在客户端系统上快速获得命令提示符(批处理文件),然后......没有......

同样可以直接指向.application文件(不使用批处理文件),甚至可以在本地复制出版本并让它指向它。

我发现了technet.microsoft.com关于类似问题的讨论,但没有列出解决方案。

对于之前遇到过这种情况并让它发挥作用的人,您需要做什么?

我们目前将RemoteApp用于该服务器上的其他所有内容,所以我希望尽可能坚持使用它。

当前的解决方法是在我们通过OneClick发布到网络时,在我们的终端服务器上为应用程序构建和运行基于MSI的安装程序,但这有时会非常麻烦,而且很容易忘记。

由于应用程序在完全桌面模式下运行时可通过终端服务正常工作,但在RemoteApp期间无法运行,我认为这不是特定于终端服务器权限的任何内容,因为ClickOnce需要在作为RemoteApp运行时不可用的内容

8 个答案:

答案 0 :(得分:8)

使其运行的关键是使用Windows资源管理器“C:\ windows \ explorer.exe”。当您登录完整会话时,此过程是基本过程。

如果您将RemoteApp设置为使用Windows资源管理器以及ClickOnce应用程序的.application文件路径的命令行参数,那么它在作为远程应用程序启动时将起作用。 Windows资源管理器在启动时将闪烁一秒,但它将消失,然后ClickOnce应用程序将启动。

答案 1 :(得分:1)

为什么它必须是ClickOnce应用程序?我会考虑只部署exe文件和程序集。

我知道它只有一半的解决方案,但如果应用程序没有太大变化,那么它可能是一个很好的解决方案。

答案 2 :(得分:1)

我认为您的问题与ClickOnce需要将其数据存储在名为ClickOnce应用程序缓存的特殊用户文件夹中这一事实有关。显然,由于终端服务如何设置用户文件夹,ClickOnce无法在终端服务模式下访问它。

有关详细信息,请参阅此链接。

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

可能没办法:(

答案 3 :(得分:1)

你能直接启动.exe吗?它隐藏在\ AppData \ Local \ Apps \ 2.0 [模糊文件夹]中的个人资料下,但您应该能够找到它。

这将跳过内置的更新过程,但如果可以通过这种方式启动,那么您可以在应用程序启动后write code to do a manual update

答案 4 :(得分:1)

今天早上遇到同样的问题并通过将clickonce应用程序的目录从用户设置文件夹复制到c:\ MyApp \之类的地方来解决问题 - 我知道它讨厌且不太理想......但对我来说还不错! / p>

答案 5 :(得分:1)

我们最近遇到了这个问题,并决定将此问题的错误报告发布到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

答案 6 :(得分:0)

在启动应用程序时尝试使用RegMon和FileMon - 您可以将其追踪到文件和/或注册表权限问题。

答案 7 :(得分:0)

也可以检查事件日志,看看当进程失败时是否记录了任何内容。