使 Visual Studio 不关心 DLL 版本

Posted

技术标签:

【中文标题】使 Visual Studio 不关心 DLL 版本【英文标题】:Make Visual Studio not care about DLL versions 【发布时间】:2010-08-06 21:20:29 【问题描述】:

有没有办法让 Visual Studio 不关心 dll 版本?这是个坏主意吗?

我正在重置我的开发机器,并且我刚刚安装了最新版本的 Pex 和 Moles(版本 .92)。我所有的项目都在 .91 版本上。

我们正在发布一个版本,现在不想升级。另外,我找不到 .91 版的安装程序。

当我尝试编译时,我收到一条消息,指出我缺少参考。 (因此这个问题)

【问题讨论】:

【参考方案1】:

版本很重要。根据定义,每个发布的版本与下一个版本之间存在差异(或者不需要新版本)。如果您期望一个版本而有另一个版本,您的程序可能无法正确执行。

这是 .NET 之前的“DLL Hell”的一部分...如果您需要使用第三方组件(Crystal Reports Viewer 是我们一直必须处理的组件),您只需使用对用户 PC 上任何已安装版本的引用。我们的零售地点必须有特定版本的 Crystal Reports 才能正确打印他们的账簿报告,因此,我们必须永远保留旧版本。在 PC 上升级 Crystal 破坏了供应商的账簿应用程序。在我的第一台 PC 上,当我安装或升级另一个应用程序时,我遇到了几个应用程序中断。特别是,Real Player 破坏了我的电话答录机软件。诸如此类的蠢事……

所以,版本很重要,即使它很烦人。这也是为什么我对第三方工具有偏见的原因,因为我没有代码,也无法自己重新编译。

【讨论】:

【参考方案2】:

如果您查看引用的 DLL 的属性,您将看到一个属性“特定版本”。如果将其设置为 false,则不会跟踪项目文件中的特定版本。

为此,您必须以某种方式修复使用过的引用。您可以通过打开每个解决方案并修复参考来做到这一点(此时您也可以将参考更新到正确的版本,注意 David 的 cmets)。

如果您有很多解决方案,您可以使用 sed 之类的工具(有关 Windows 版本的类似 Is there any sed like utility for cmd.exe 的工具,请参阅这篇文章),以便根据需要一次性更新项目文件。

【讨论】:

以上是关于使 Visual Studio 不关心 DLL 版本的主要内容,如果未能解决你的问题,请参考以下文章

使用 Visual Studio 2010 在 dll 项目中包含 Qt 工具

visual studio2017 添加dll库

visual studio 2008 解决方案发布版运行时致命错误

Visual Studio不生成任何文件以输出路径

[Azure] 使用 Visual Studio 2013 管理中国版 Azure 订阅

带有 Visual Studio 2012 的 TCC