我想使用免注册 com,这样我就不必注册我的旧 com 组件。但是,我希望能够将 com dll 放在不在客户端 exe 目录中或之下的位置,例如....\lib。我无法在服务器清单文件中执行此操作,因为它不允许相对或绝对路径。
有谁知道是否有办法解决这个问题?
更新:
我只找到了在 XP 上工作的相对路径。不过,我可以使用激活上下文 API 在 Windows Server 2008 上使用绝对路径,这很酷。我现在的问题是我的 COM 组件对托管数据库驱动程序有静态依赖项,但目前找不到它。根据我读到的有关清单文件的内容,我希望可以简单地将另一个元素添加到指向此 dll 的 COM 无注册表清单中,因为它与 COM dll 位于同一目录中,但我无法让它工作。因此,总而言之,我在一个目录中有一个 exe,它使用激活上下文 API 来引用另一个目录(不是 exe 目录的子目录)中的 COM 清单/dll,它可以正确找到并加载该目录。但我在与 COM dll 相同的目录中还有一个托管数据库驱动程序 dll,我想知道如何使用清单文件加载它 - 如果可能的话。
我通过将父目录作为当前目录运行 exe 来实现这一点。
即具有此文件夹结构
- 父目录/
- 父目录/myapp/
- 父目录/一些依赖/
然后使用“parentdir”作为当前目录,您可以运行您的exe
“.\myapp\myapp.exe”
并且 myapp.exe.manifest 可以包含对“somedependency”中某些内容的引用,如下所示
<file name=".\somedependency\somecomassembly.dll" />
这适用于 Windows Server
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)