用于终端服务接收COM错误的ClickOnce部署

时间:2010-07-22 13:42:07

标签: clickonce terminal-services

我已经将一个使用第三方dll的桌面应用程序部署到测试终端服务器,以报告其可用性。在我的测试中,我收到了这个错误:

An unhandled exception of type 'System.IO.FileNotFoundException' occurred in General Purpose.dll

Additional information: Creating an instance of the COM component with CLSID {8EB296F1-6C46-4BC1-9F00-B49F14B57DB8} from the IClassFactory failed due to the following error: 800a0035.

在创建新的第三方类时(对应用程序至关重要)会发生这种情况。据我所知,这是唯一有这类问题的第三方类,但是这个DLL中唯一一个。

应用程序使用ClickOnce正常部署以供正常桌面使用,但不适用于TS会话或服务器控制台。

所有DLL都设置为“Copy Local”,我已经确认它们被复制到用户本地设置“Apps \ 2.0 \ crazylongnamehere”文件夹中。

我选择了发布路线(通过MSI),因为我们目前拥有较厚的客户端,瘦客户端将随着时间的推移缓慢集成。

2 个答案:

答案 0 :(得分:0)

如果您在其中一台终端服务器上,并深入查看ClickOnce缓存并双击[exe]文件,它是否有效?还是会崩溃?是否需要任何特权来做你想做的事情?

答案 1 :(得分:0)

在将参考文件复制到输出位置后,我终于让我的应用程序在TS上工作了。

解决方案是将引用的dll作为链接项添加到项目中,并将属性更改为:

  • 构建操作:内容
  • 复制到输出目录:始终复制

一旦这些都得到更新,它就能正常工作。