我们在 vb 6.0 中有项目 PrjDb.dll,它引用了 ado 2.5。该项目是在机器 A 上构建的。现在,当我们在另一台机器 B 上为 PrjDb.dll 生成互操作时,我们最终会得到一个新的 ADODB.dll,版本字段中的版本为 2.5,而不是将其与主互操作程序集 adodb.dll 链接(在“Program Files\Microsoft.NET\Primary Interop Assemblies”下找到)。问题是当我部署我的应用程序时,它现在要求这个新生成的 adodb.dll。而且我不想发货。
即使我在命令行中提供了 adodb.dll 路径,它仍然会为 AdoDB 生成新的互操作。我尝试使用开关 /strict 然后它说它无法使用我希望它使用的 AdoDB.dll 解析引用。
如果我们在构建 PrjDb.dll 的同一台机器上生成互操作,则不会发生这种情况。而不是在机器 B 以外的任何机器上,它会自动为 AdoDB 选择 PIA。
当我们为 PrjDb.dll 生成互操作时,知道机器 B 上发生了什么吗?