Visual studio Visual Studio 2008解析错误的引用
在我的项目文件中,我有以下条目:Visual studio Visual Studio 2008解析错误的引用,visual-studio,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&g
<Reference Include="Microsoft.Practices.Unity, Version=1.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\..\Libraries\Microsoft.Practices.Unity.dll</HintPath>
</Reference>
..\..\..\..\Libraries\Microsoft.Practices.Unity.dll
就绝对值而言,这意味着:
C:\dev\LUT600 2.1.1\OCC600\Libraries
不知何故,当我尝试编译项目时,Visual Studio从完全不同的路径加载引用:
/参考:“C:\Program Files\Microsoft Enterprise Library 4.1-2008年10月\Bin\Microsoft.Practices.Unity.dll
它如何解析到这个位置是一个完全的谜,因为这个DLL在这个项目的任何地方都没有被引用
我已经将Specific Verion设置为true,但它仍然解析来自此位置的引用
有什么想法吗
蒂亚
Klaus可能是引用与该特定位置的程序集版本号不同,因此它开始在其他位置搜索以找到“更好”的匹配项 VS不只是获取您指定的文件,而是始终使用探测路径来尝试查找引用的程序集。这通常提供随机“拾取任何具有相同名称的内容”“效果。在我们的构建服务器上,我曾经找到996个程序集副本。995是相同的,正确的版本,一个是错误的版本。有一天,我们的构建停止了工作,因为没有明显的原因,它突然决定使用一个错误的副本 尝试删除并重新创建引用。这通常会有所帮助
在最坏的情况下,请从电脑中删除该程序集的所有副本,但要链接到的版本除外。(如果可能的话,无需销毁您所珍视的任何内容)您很可能添加了来自GAC(全局程序集缓存)的引用。加载需要一段时间的引用的长列表是来自GAC的引用。尝试删除引用,然后通过在“添加引用”对话框中浏览到该程序集来重新添加引用。它可能在计算HintPath之前在搜索路径中找到dll。如中所述,在HintPath之前搜索两个位置
- 当前项目中的文件–由{candidateasemblyfiles}表示
- 来自.user/targets文件的$(ReferencePath)属性