【发布时间】:2011-01-22 09:12:15
【问题描述】:
我们在让 Visual Studio 从我们的一个项目中获取最新版本的 DLL 时遇到问题。
我们有多个类库项目(例如 BusinessLogic、ReportData)和许多 Web 服务,每个服务都引用了我们编写的连接 DLL(这个对连接 DLL 的引用是问题所在)。
我们总是在 bin/debug 文件夹中指向 DLL 的引用(这是我们为任何给定项目构建的地方),并且所有自定义 DLL 引用都有 CopyLocal = True 和 SpecificVersion = False
ReportData 引用了业务逻辑(也引用了连接性 - 我不明白为什么这会导致问题,但认为值得一提)
奇怪的是,当您单击“添加引用”并浏览到 Connectivity/bin/debug - 将鼠标悬停在 DLL 文件上时,会显示正确的(最新)版本(版本和文件版本总是一起递增),但是当您单击确定时,会拉出以前的版本号。即使我查看显示最新版本号的当前项目调试文件夹(其中复制本地将在编译后放置 DLL)。 - 我无法在 Visual Studio 之外找到以前版本的 DLL,但在该项目引用中它具有旧版本 - 即使路径是正确的。
我不知道它可能从哪里获得旧版本。甚至为什么它想要那个。
这可能是我遇到过的最令人沮丧的问题。
有谁知道如何确保最新版本通过(最好是自动或在编译时)。
编辑:
虽然不完全是我正在处理的场景,但我正在阅读 this 文章,并且在某处它提到了 CLR 忽略修订号。可以理解(尽管这在以前不是问题——我们正在修订 39),所以我想我会更新内部版本号,但仍然没有用。尽管我会更新次要版本号并查看是否有任何不同,但我还是徒劳无功。
我并不是说这是答案,因为我必须先检查很多东西,但从表面上看,这似乎解决了我的问题......
进一步编辑: 在其他类库中,这似乎已经解决了这个问题,但是在测试 Windows 应用程序中,它仍然通过:(
如果我再次增加次要版本号,同样的问题会再次出现,但我会留下错误的版本。
进一步编辑 - 我创建了一个全新的项目,添加了一个参考,但仍然遇到完全相同的问题。这表明问题仅限于我引用的项目。希望我知道为什么!
以前有人遇到过这个问题并且知道如何解决吗?
帮助!
【问题讨论】:
-
以任何特定顺序构建项目(例如,BusinessLogic 然后 ReportData)似乎没有帮助。
-
您是否对作为解决方案一部分的程序集使用文件引用?还是 Connectivity.dll 内置在另一个解决方案中?
-
这是另一个解决方案的一部分
标签: .net visual-studio-2008 assemblies reference dll