我正在创建一个将为 COM 注册的 .NET 程序集,以便 Microsoft Excel VBA 可以引用它。
该程序集引用了一个不在 GAC 中的第三方 .NET 程序集(包含一些有用的类),但是,我的程序集的部署存在问题,因为第三方程序集的路径并不总是在相同的位置(这取决于用户的语言环境以及最近安装第三方程序集的时间)。
这意味着在部署我的程序集(使用 REGASM)时,根据安装它的系统,REGASM 有时会失败,因为它找不到我的程序集对第三方程序集的依赖关系。
理想情况下,我想在我的程序集中使用早期绑定,但如果我这样做并且第三方程序集的路径与 Visual Studio 中的引用不同,那么 REGASM 将失败。
我意识到“复制本地”(在 VS 中)可以解决这个问题,但是由于有时会修补第三方程序集,所以我真的不希望将它的过时版本保留在与我的程序集相同的文件夹中。
有没有办法让我不必使用“复制本地”?我想我可以使用第三方程序集的某种动态加载,但仍然可以使用早期绑定?(并且 REGASM 会起作用吗?)