我有一个使用本机 C++ COM 对象的 C# 程序。Visual Studio 为 COM 对象中的类型生成一个带有包装器的互操作程序集。每次我重新编译 C# 程序互操作程序集都有 1.0.0.0 版本。
这对安装程序不利——有时我们扩展 COM 对象接口(在某些接口的末尾添加新方法),因此必须更改互操作程序集。当安装程序尝试更新现有安装时,它认为互操作程序集没有更改(因为它仍然具有版本 1.0.0.0)并跳过更新它并且程序无法运行。
如何控制分配给互操作程序集的版本号?
我有一个使用本机 C++ COM 对象的 C# 程序。Visual Studio 为 COM 对象中的类型生成一个带有包装器的互操作程序集。每次我重新编译 C# 程序互操作程序集都有 1.0.0.0 版本。
这对安装程序不利——有时我们扩展 COM 对象接口(在某些接口的末尾添加新方法),因此必须更改互操作程序集。当安装程序尝试更新现有安装时,它认为互操作程序集没有更改(因为它仍然具有版本 1.0.0.0)并跳过更新它并且程序无法运行。
如何控制分配给互操作程序集的版本号?
已经有一段时间了,所以我可能记错了它是如何工作的,但我认为如果你使用Tlbimp而不是让 VS 创建包装器,你可能能够做你想做的事。
可能你可以使用asmversion
参数来完成它,否则如果你使用参数给它一个强名称,它可能是可能的keyfile
。