【问题标题】:Linking against a .dll version older than the installed one in Visual Studio 2005链接到比 Visual Studio 2005 中已安装版本更旧的 .dll 版本
【发布时间】:2008-10-20 17:53:49
【问题描述】:

请原谅大量的背景信息,但这是一个相当具体的问题。

我有一个创建 .dll 文件的 Visual Studio 2005 项目。该项目依赖于另一家公司“BigCorp”的 .dll,它与 BigCorp 的软件一起安装。

理想情况下,我创建的 dll 应该可以与 BigCorp 的任何(向后兼容)版本的 dll 一起使用。也就是说,如果我链接到版本 4.3.2.100,如果用户升级 BigCorp 的应用程序以使 .dll 版本为 4.3.3.20,我的程序应该仍然可以工作。

这在 VS2005 中非常简单,通过查看项目的引用、选择 .dll 并确保“特定版本”属性为 false。

现在我的实际问题是:是否可以指定一个比安装在构建项目的机器上的版本的 .dll 的基本版本?继续我之前的示例,我的构建机器安装了 4.3.3.20 版本,但我希望它生成的 .dll 与尚未升级的安装兼容,并且只安装了 4.3.2.100 版本。

似乎VS解析了.dll的路径并根据它找到的文件检测运行时版本。试图通过直接在 .vbproj 或 .csproj 中指定版本号来覆盖它,即,

没有效果。尝试在具有旧版本的计算机上注册我的程序集失败,并出现旧的“无法加载文件或程序集”错误,因为它试图找到 BigCorp 的 .dll 的新版本。

我想做的事是否可能?

【问题讨论】:

  • 您的开发机器上是否还有旧版本的 .dll?

标签: dll visual-studio-2005


【解决方案1】:

您可以通过直接从项目中引用较旧的 DLL 来做到这一点,因此将 .dll 文件复制到您的项目中,然后从那里引用它。

我在各种开发项目中一直这样做。通常我会在我的项目中放置一个“References”文件夹来保存引用的 DLL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 1970-01-01
    • 2020-08-21
    • 2019-05-14
    • 1970-01-01
    • 2014-02-14
    • 1970-01-01
    相关资源
    最近更新 更多