VS2010-引用的组件';X';找不到.-禁用自动“;添加引用”;

本文关键字:引用 添加 找不到 组件 VS2010- | 更新日期: 2023-09-27 17:57:43

我们的项目文件有问题,这很烦人。

示例:

我们有一个包含projXprojY的解决方案,它们引用程序集log4net

例如,有人移动程序集文件,只更新projX+中的引用,然后提交而没有发现丢失的程序集-然后引用在projY中丢失。

下次我签出并打开解决方案时,projY会有VS2010正确标记为缺少的引用,并带有一个小感叹号。到目前为止还不错。:)

问题:

现在,如果我构建解决方案,那么程序集引用会神奇地更新到projY中,指向projX的BIN文件夹(在这种情况下,projX必须在projY之前构建)

VS2010似乎会搜索我们的解决方案树,并在找到匹配的程序集时自动添加程序集。

功能不错,但也有点危险,非常误导。例如,程序集可能最终具有指向另一个项目bin文件夹的路径。

问题:

有没有什么方法可以禁用这种行为,只得到一个编译错误,从而阻止构建?

注意:

  • 我们最近开始使用NuGet
  • 我们定义了自己的输出文件夹->文件不是放在Bin''Debug中,而是放在。。''输出

[编辑]

更新了示例以获得更清晰的内容。

[编辑]

在网上搜索解决方案时,我发现了这篇文章,它描述了一个相关的问题,其中VS2010也自动添加引用,但在本例中来自GAC。我们的程序集不在GAC中。http://blog.scrappydog.com/2010/07/bug-tfs-2010-outsmarts-itself-and-auto.html

[编辑]

尝试在项目中使用引用路径修复此问题。这个想法是VS将首先搜索引用路径,然后搜索项目bin文件夹。但运气不好。它仍然从输出文件夹中获取程序集。

VS2010-引用的组件';X';找不到.-禁用自动“;添加引用”;

不,目前还没有已知的解决方法。

我知道这听起来可能很愚蠢,但你检查过你的项目吗?项目属性中定义的引用路径?也许它只是从你可能设置的任何路径中找到缺失的参考。

我在一个程序集上遇到了同样的问题。

对我来说,有效的方法是在某些文件的路径超过256个字符之前,将整个解决方案文件夹移动到磁盘的根目录。我在尝试压缩/解压缩解决方案文件夹时了解到了这一点。

您是否与其他程序集确认了这一点?我以前没有使用过log4net,但如果它在全局程序集缓存(GAC)中的版本正确,就可以从那里获取。GAC是系统范围程序集的一个位置,供系统上的应用程序引用。