【发布时间】:2012-09-15 04:30:07
【问题描述】:
我有一个用 VB.NET (MSVS 2010) 编写的小类库,启用了“Com visible”和“Register for COM interop”标志。此库旨在用于 Windows 2008 终端服务器。我遇到了两个问题:
在服务器上注册我的库。显然,调用
regasm.exe my_lib.exe /tlb是不够的。虽然regasm确实有地方 适当的键进入注册表,调用CreateObject("My_lib_prog_id")导致失败。我暂时 通过安装 MSVS2010 的试用版解决了这个问题 服务器,以提升的权限运行它并构建库 那里。而且效果很好,直到...作为另一个用户运行的 COM 客户端程序试图调用该库。它失败了。
编辑:“失败”表示 VBA 在执行Set obj = CreateObject("MyLibProgID") 时抛出“系统找不到指定的文件”异常。它可以在 Visual Studio 注册 lib 的同一用户帐户中正常工作。
我尝试向所有人授予对 lib 目录的读取和执行权限,但没有成功……请问有什么想法吗?
更新
如果客户端在任何其他用户下运行,就会出现问题,即使该用户具有管理员权限。
【问题讨论】:
-
“...导致失败”,“...失败。”。你能提供更多细节吗?
-
也许运行 fuslogvw 会有所帮助。
-
日志是emply。没有失败。
-
msdn.microsoft.com/en-us/library/tzat5yw6(v=vs.100).aspx你在gac中注册了dll了吗?您能否确认 com 参考在 vba 参考列表中可用(查找 *tlb 文件)。
标签: .net vb.net visual-studio-2010 com terminal-services