Visual studio 如何在VS2005中自动生成的互操作程序集中保留COM DLL版本?
我在VisualStudio2005中的C#项目中添加了对同事的COM DLL(MyLogic.DLL)的引用。正如预期的那样,这将在我的输出文件夹中自动生成Interop.MyLogicLib.dll。但是,COM DLL的版本号为2.1.0.180,而自动生成的互操作程序集的版本号为1.0.0.0。如何让Visual Studio保留原始版本号 目前来看,1.0.0.0版本号让我在产品的安装过程中感到悲伤。安装程序拒绝覆盖interop DLL的早期版本,因为旧副本和新副本都有1.0.0.0版本 顺便说一句,我尝试使用“tlbimp/asmversion:2.1.0.180 MyLogic.dll”在命令行手动生成程序集,但是:Visual studio 如何在VS2005中自动生成的互操作程序集中保留COM DLL版本?,visual-studio,com,visual-studio-2005,interop,assemblies,Visual Studio,Com,Visual Studio 2005,Interop,Assemblies,我在VisualStudio2005中的C#项目中添加了对同事的COM DLL(MyLogic.DLL)的引用。正如预期的那样,这将在我的输出文件夹中自动生成Interop.MyLogicLib.dll。但是,COM DLL的版本号为2.1.0.180,而自动生成的互操作程序集的版本号为1.0.0.0。如何让Visual Studio保留原始版本号 目前来看,1.0.0.0版本号让我在产品的安装过程中感到悲伤。安装程序拒绝覆盖interop DLL的早期版本,因为旧副本和新副本都有1.0.0.0
更新:道歉;我似乎复制了。老实说,我确实先找了一个现有的。我只是错过了(程序集版本号由类型库版本号设置,而不是由DLL中的VERSIONINFO资源设置。请确保在IDL文件中正确设置库的“版本”属性:
import "oaidl.idl";
import "ocidl.idl";
[
uuid(5F3D3EAC-0F66-4199-B548-654A9174552B),
version(2.1),
helpstring("Something descriptive here")
]
library YourLib {
// etc
};
谢谢。考虑到IDL只能指定主要版本和次要版本,我想我会坚持手动生成互操作,因为我需要更精细的版本控制。如果程序集版本号由类型库版本号设置,那么tlbimp中/asmversion选项的用途是什么?我们不能通过tlbimp覆盖此版本号吗?Th当然,at需要覆盖它。然而,一个坏主意是,需要在版本中获得一个内部版本号。