【发布时间】:2026-01-14 13:45:01
【问题描述】:
我们正在将我们的构建计算机更改为新的,同时更改为 Visual Studio 2010。我们有大约 500 个不同的小组件,每个组件都有自己的 csproj 文件,所有其中有对“\Framework\bin\”目录中的程序集的引用。
在获得完整的源代码并开始编译我们的项目后,我们遇到了一个问题:许多引用无法解析,但不是全部,而且在不同的项目中并不总是相同的引用。问题似乎与 csproj 文件的 HintPath 属性有关。
具体来说,这是一个可以解析的参考示例:
<Reference Include="AIS.Common, Version=8.1.0.1, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\Framework\Bin\AIS.Common.dll</HintPath>
</Reference>
这是一个不能:
<Reference Include="AIS.ControlLib, Version=9.1.0.1, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
奇怪的是,Visual Studio 中两个引用的属性完全相同(当然,除了它们的名称和身份)。所以看起来 HintPath 是自动生成的,但为什么只在某些引用上?
我们怀疑问题可能来自使用不同版本的 Visual Studio(在 500 多个项目中,一些在 VS2005 中,另一些在 VS2008 中,还有一些仍在 VS2010 中),但我们无法将行为缩小到合乎逻辑的范围。
有没有什么方法可以编译我们的项目而无需手动重新附加未解析的引用?
【问题讨论】:
标签: visual-studio visual-studio-2010 reference csproj