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

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

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

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

我找到了 technet.microsoft.com 关于类似问题的讨论,但没有解决它列出的问题。

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

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

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

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

有帮助吗?

解决方案

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

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

其他提示

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

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

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

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

http://msdn.microsoft.com/ EN-US /库/ 267k390a(VS.80)的.aspx

可能没办法:(

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

这将跳过内置的更新过程,但是如果它可以以这种方式启动,那么你可以在应用程序启动后编写代码以进行手动更新。

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top