自动化Com DLL互操作版本

时间:2010-08-21 03:47:42

标签: visual-studio com interop

因此,当visual studio构建interop dll时,它获得4.0.0.0。

TypeLib版本是4.0

但实际DLL版本是4.0.1.112

无论如何,我可以让visual studio自动构建互操作DLL以假设实际的DLL版本吗?

我可以选择让interop DLL使用我的应用程序中的版本标记。

我只需要将interop DLL与应用程序保持同步,这样安装程序就不会留下旧的interops。

我真的不想手动执行tlbimp,但我想当我实现安装程序自动化时,我可以自动执行该步骤。

2 个答案:

答案 0 :(得分:2)

好吧,确实考虑了DLL版本。类型库只能有主版本号和次版本号。您需要将DLL版本提升到4.1.x.x

这是其他适当的行为。 COM的一个硬性规则是,如果您对公开可见的界面进行更改,则必须更改GUID。不这样做会导致最糟糕的DLL Hell,这种崩溃客户端应用程序没有任何好的方法来诊断原因。

这不再是版本更改,这是一个非如此次要的版本更改。必须重建COM服务器的客户端。如果您实际上没有更改公共接口,那么类型库版本为4.0仍然非常合适。它没有改变。

答案 1 :(得分:1)

我不相信这是可能的。在构建互操作DLL时,Visual Studio将更喜欢TypeLib版本。我认为你只能使用手工制作的DLL与tlbimp并利用/ asmversion开关