gpt4 book ai didi

visual-studio - 如何在 VS2005 中自动生成的互操作程序集中保留 COM DLL 版本?

转载 作者:行者123 更新时间:2023-12-04 07:10:47 25 4
gpt4 key购买 nike

我在 Visual Studio 2005 中的 C# 项目中添加了对同事 COM DLL 的引用——MyLogic.dll。正如预期的那样,这会在我的输出文件夹中自动生成 Interop.MyLogicLib.dll。但是,COM DLL 的版本号是 2.1.0.180,而自动生成的互操作程序集的版本号是 1.0.0.0。如何让 Visual Studio 保留原始版本号?

就目前而言,1.0.0.0 版本号让我在安装产品时感到悲伤。安装程序拒绝覆盖互操作 DLL 的早期版本,因为新旧副本都有 1.0.0.0 版本。

顺便说一句,我已经尝试使用“tlbimp/asmversion:2.1.0.180 MyLogic.dll”在命令行手动生成程序集,但是:

  • 我的项目拒绝使用手动生成的程序集进行构建,说我使用的类型是在名为 Interop.MyLogicLib.dll 的非引用程序集中定义的(我手动创建的程序没有“Interop”前缀。 )。不得不承认,我不明白这一点。
  • 我需要提前知道版本号,而不是让工具从 COM DLL 中读取它
  • 这是一个手动过程,很糟糕

  • 无论如何,Visual Studio 肯定可以跨 COM 版本号自动复制吗?

    更新:道歉;我似乎复制了 another question .老实说,我确实首先搜索了现有的。我只是错过了。 :(

    最佳答案

    程序集版本号由类型库版本号设置,而不是 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
    };

    关于visual-studio - 如何在 VS2005 中自动生成的互操作程序集中保留 COM DLL 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/383511/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com