我可以控制分配给互操作程序集的版本号吗?

我有一个使用本机C ++ COM对象的C#程序。 Visual Studio生成一个interop程序集,其中包含COM对象中类型的包装器。 每次重新编译C#程序时,互操作程序集都有1.0.0.0版本。

这对安装程序有害 – 有时我们扩展COM对象接口(在某个接口的末尾添加新方法),因此必须更改互操作程序集。 当安装程序尝试更新现有安装时,它认为互操作程序集没有更改(因为它仍然具有版本1.0.0.0)并且跳过更新它并且程序不起作用。

如何控制分配给互操作程序集的版本号?

这已经有一段时间了,所以我可能会错误地记住这是如何工作的,但我认为如果你使用Tlbimp而不是让VS创建包装器,你可能能够做你想要的。

可能你可以使用asmversion参数来执行它,否则如果使用keyfile参数给它一个强名称,它可能是可能的。