我正在开发一个 .Net 组件,它将作为插件存在于 Windows 应用程序中。这个插件将使用 regasm 在客户端机器上注册。我的组件嵌入了它的大部分依赖项,并在请求时将程序集返回给 AppDomain。如果我尝试在我的单个 dll 上运行 regasm,它会失败,因为它无法在文件夹中找到依赖项。在客户端机器上安装组件时,这将是一个问题。
有没有办法告诉 regasm 从哪里获取嵌入式 dll?
到目前为止我已经尝试过:
使用附近的 dll 注册组件,然后将单个 dll 复制到运行时文件夹。我的组件工作正常,并且在运行时发现了 dll,但这不是部署的选项。
使用 ComRegisterFunctionAttribute 挂钩。只有当 dll 在附近时才会调用它,所以它并不比 #1 好。
我无法控制 regasm 会被调用的事实。我不必使我的组件成为单个 dll,但如果我能解决这个问题,它会使部署变得相当容易。