.net – 项目引用DLL版本地狱

前端之家收集整理的这篇文章主要介绍了.net – 项目引用DLL版本地狱前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
让视觉工作室从我们的一个项目中获取最新版本的DLL时遇到问题。

我们有多个类库项目(例如BusinessLogic,ReportData)和一些Web服务,每个都有一个对我们编写的连接DLL的引用(这个引用连接DLL是问题)。

我们总是指向bin / debug文件夹中的DLL(这是我们始终为任何给定的项目构建的地方)的引用,所有自定义DLL引用都有CopyLocal = True和SpecificVersion = False

ReportData有一个业务逻辑的参考(它也有一个参考连接 – 我不明白为什么会引起一个问题,但是以为值得一提)

奇怪的是,当您单击“添加参考”并浏览到连接/ bin / debug – 将鼠标悬停在DLL文件上时,将显示正确的(最新)版本(版本和文件版本总是递增在一起),但是当您点击确定,以前的版本号被拉。即使我查看当前项目的调试文件夹(其中copy本地将编译后的DLL)显示最新版本号。 – 不,我可以在visual studio之外找到以前版本的DLL,但是在该项目中,引用它具有旧版本 – 即使路径正确。

我可能会从旧版本中获取旧版本。甚至为什么它想要那个。

这可能是我遇到的最大的问题。

有谁知道如何确保最新版本被拉通(最好自动或编译)。

编辑:

虽然不完全是我正在处理的情况,我正在阅读this文章,并在某处提及关于CLR忽略修订号。可以理解(即使这不是一个问题 – 我们在修改39),所以我以为我会更新版本号,仍然没有工作。我试图尽可能地更新次要版本号,看看是否有所作为。

我不是说这是答案,因为我必须首先检查一些事情,但从表面上看,这似乎已经解决了我的问题?

进一步编辑:
在其他类库中,这似乎已经解决了这个问题,但是在一个测试Windows应用程序中,它仍然通过以下方式提取了以前的版本:

如果我再次增加次要版本号,同样的问题就会回来,我被遗忘了错误的版本。

进一步编辑 – 我创建了一个新的项目,添加了一个参考,仍然有完全相同的问题。这表明问题受到我参考的项目的限制。希望我知道为什么!

任何人都有这个问题,知道如何解决

帮帮我!

为了避免dll,我建议您在项目中创建一个lib文件夹,并将所有共享程序集放在此文件夹中。接下来,您只能从此文件添加引用。这样你的项目是自包含的,你确切地知道从哪里挑选引用。如果要使用较新版本更新某些程序集,请将其复制到lib文件夹并重建项目。

另外,请确保您将引用的程序集没有被首先提取到GAC中。

猜你在找的Windows相关文章