visual-studio - Visual Studio 2008 解决错误的引用

标签 visual-studio

在我的项目文件中,我有以下条目:

<Reference Include="Microsoft.Practices.Unity, Version=1.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <HintPath>..\..\..\..\Libraries\Microsoft.Practices.Unity.dll</HintPath>
</Reference>

这在绝对意义上翻译为:

C:\dev\LUT600 2.1.1\OCC600\Libraries



不知何故,当我尝试编译项目时,Visual Studio 从完全不同的路径加载引用:

/reference:"C:\Program Files\Microsoft Enterprise Library 4.1 - October 2008\Bin\Microsoft.Practices.Unity.dll.



它如何解析到这个位置完全是个谜,因为这个 DLL 在这个项目的任何地方都没有被引用。

我已将特定版本设置为 true,但它仍然可以解析来自此位置的引用。

有任何想法吗?

TIA。

克劳斯

最佳答案

可能引用与该特定位置中的程序集的版本号不同,因此它开始在其他地方搜索以找到“更好”的匹配项。

VS 不只是获取您指定的文件,而是始终使用探测路径来尝试查找引用的程序集。这通常会提供随机的“选择具有相同名称的任何东西”的效果。在我们的构建服务器上,我曾经发现一个程序集的 996 个副本。 995是相同的,正确的版本,一个是错误的版本。有一天,我们的构建停止工作,因为它无缘无故地突然决定使用一个错误的副本!

尝试删除并重新创建引用。这通常有帮助。

在最坏的情况下,从您的 PC 中删除该程序集的所有副本,但您希望链接到的版本除外。 (如果可能的话,不要破坏任何你珍视的东西)

关于visual-studio - Visual Studio 2008 解决错误的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1615132/

相关文章:

c# - Xamarin : Can not resolve reference: `System.Threading.Tasks.Extensions` , 被 `MySqlConnector` 引用。

c# - 如何将一批 .NET DLL 反编译为 Visual Studio 项目

c# - 不存在的模糊引用

c# - 开发始终在桌面上的 Windows 10 小部件应用程序

VS 2015中没有出现Mysql数据库选项

c++ - 我可以将外部库链接到仅 header 的 visual studio 项目以用于其他解决方案吗?

c++ - 使用cuda进行图像处理的Hello world

c# - 如何在 Visual Studio 2015 中禁用 C# 6 支持?

c++ - Visual Studio 包含文件调用错误 - C++

visual-studio - 用于 git 推送错误的 Microsoft Visual Studio 工具