ClickOnce仅在线应用程序作为TS RemoteApp

时间:2020-03-06 14:28:07  来源:igfitidea点击:

我已经尝试了几乎所有方法来使我们的ClickOnce VB.NET应用程序在终端服务下作为RemoteApp运行。我有一个批处理文件,可为该应用程序运行.application文件。

通过终端服务器上的RDP桌面会话,可以正常工作。但是,作为TS RemoteApp,还不...太多。

我在客户端系统上快速看到了命令提示符(批处理文件),然后...什么也没有...

让它直接指向.application文件(不使用批处理文件),甚至在本地复制发布并指向它也是如此。

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

对于以前遇到过这种情况并使它起作用的任何人,我们该怎么办?

我们目前在该服务器上的所有其他产品上都使用RemoteApp,因此,我希望尽可能地坚持使用。

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

由于该应用程序在完全桌面模式下运行时可以通过终端服务正常运行,而不是在RemoteApp期间运行,因此我认为它与终端服务器权限无关,而ClickOnce则不需要作为RemoteApp运行时可用的功能。

解决方案

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

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

我相信问题与ClickOnce需要将其数据存储在称为ClickOnce应用程序缓存的特殊用户文件夹中有关。显然是由于终端服务如何设置用户文件夹,因此ClickOnce无法在终端服务模式下访问此文件夹。

有关更多信息,请参见此链接。

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

可能没有办法做到这一点:(

启动应用程序时,尝试使用RegMon和FileMon。我们也许可以将其跟踪到文件和/或者注册表权限问题。

也可以检查事件日志,以查看该过程失败时是否有任何日志记录。

我们可以直接启动.exe吗?它埋在\ AppData \ Local \ Apps \ 2.0 [混淆文件夹]中的个人资料下,但是我们应该可以找到它。

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

今天早上面对相同的问题,并通过将clickonce应用程序的目录从用户设置文件夹复制到c:\ MyApp \之类的位置来解决,我知道它很讨厌,也不是很理想。