我尝试了一切让我们的ClickOnce VB.NET应用程序作为RemoteApp在终端服务下运行。我有一个批处理文件,用于运行应用程序的.application文件。
通过终端服务器上的RDP桌面会话可以正常工作。然而,作为TS RemoteApp,不是那么多。
我在客户端系统上快速获得命令提示符(批处理文件),然后......没有......
同样可以直接指向.application文件(不使用批处理文件),甚至可以在本地复制出版本并让它指向它。
我发现了technet.microsoft.com关于类似问题的讨论,但没有列出解决方案。
对于之前遇到过这种情况并让它发挥作用的人,您需要做什么?
我们目前将RemoteApp用于该服务器上的其他所有内容,所以我希望尽可能坚持使用它。
当前的解决方法是在我们通过OneClick发布到网络时,在我们的终端服务器上为应用程序构建和运行基于MSI的安装程序,但这有时会非常麻烦,而且很容易忘记。
由于应用程序在完全桌面模式下运行时可通过终端服务正常工作,但在RemoteApp期间无法运行,我认为这不是特定于终端服务器权限的任何内容,因为ClickOnce需要在作为RemoteApp运行时不可用的内容
答案 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中的某些更改引起的错误。
我们还在MSDN论坛上讨论了这个问题:
答案 6 :(得分:0)
在启动应用程序时尝试使用RegMon和FileMon - 您可以将其追踪到文件和/或注册表权限问题。
答案 7 :(得分:0)
也可以检查事件日志,看看当进程失败时是否记录了任何内容。