为什么我不能引用我的类库?

我有一个解决scheme,包含在Visual Studio 2008中的网站和类库。

然后,我需要引用类库的解决scheme之外的另一个网站项目。 我右键单击Bin文件夹或项目,然后select添加引用,然后select我的类库项目,它将类库需要的15个左右的DLL添加到网站bin文件夹,但没有一个.cs文件识别使用语句。

using MyLibrary.MyFolder; 

它说它不能解决它,ReSharper只是说它可以安全地删除,因为它没有被使用。

ReSharper可以认识到它需要参考,并build议它“引用MyLibrary和使用MyFolder”。 我不知道为什么它build议我添加一个我已经有的参考。 当我提出这个build议时,我得到了错误

“无法引用模块,可能引用会产生项目之间的循环依赖关系。”

我试着去网站属性页面,并删除所有的引用,并重新添加它们,但它给出了相同的错误。 任何想法,为什么这是行不通的?

另外,请检查新解决scheme的项目是否针对您要包含的项目的兼容框架运行。 我试图在3.5项目中引用4.0项目。

我发现如何解决这个问题(至less对我来说)。 为什么它的工作,我不知道,但它确实。 (我刚刚尝试了第二个网站有同样的问题,以下解决scheme也为此工作)。

我尝试了正常的项目清理和重build,closures所有Visual Studio实例并重新启动它们,甚至尝试重新启动计算机。

实际工作是在Visual Studio中打开项目,closures所有打开的选项卡,然后closures它。

在我离开标签之前,因为我不认为它很重要(我几乎没有closures我使用的标签)。

一种可能性是类库的目标.NET Framework版本高于项目的版本。

我有一个类似的问题,所有我的引用被纠缠由Resharper – 解决scheme是我的工作是清除Resharpercaching,然后重新启动VS

tools-> options-> resharper-> options-> general->点击清除cachingbutton,然后重新启动VS

这听起来像ReSharper类似的问题:

http://www.jetbrains.net/devnet/thread/275827

根据线程中的一个用户强制构build修复了第一次构build后的问题(CTRL + Shift + B)。

听起来像ReSharper问题,特别是在他们的情况..你试过build设,不pipe警告和可能的错误?

我有类似的问题VS有时会build立,有时不会。 经过一番search和尝试之后,我发现我在不同的库('FileManager')中对同名的类有一个模棱两可的引用。 不能构build的项目是我的unit testing,它引用了我的解决scheme中的所有模块。 强制对特定模块的引用对我进行了整理。

我的观点是:与其指责ReSharper或者VS,不如指出某种forms的循环引用是否是一个好主意。 在不同的模块中,相同名称的类经常会引起混淆,而且往往是不好的devise的一个症状(就像我的情况一样)。

我删除了我的项目的* .csproj.user(resharper文件),然后closures所有选项卡并重新打开它。 之后,我能够编译我的项目,没有resharper警告。

我有这个问题。 花了我好几年才弄清楚。 我有我的肩膀帮助人。 我们重build,清理并重新启动Visual Studio,这并没有解决它。 我们删除并重新添加引用…

所有无济于事…直到!

我的问题的解决scheme是我的类声明拼写错误。

在你开始严厉地评判我之前,让我解释为什么这不是愚蠢的,也是为什么即使是最聪明的程序员也能犯这个错误。

由于错误在名称的早期,当我开始打字时,并没有出现在intellisense类的列表中。

例如

类名称: Message.cs

宣言:

 public class Massage { //code here } 

一目了然,一个小字体,按摩看起来相同的信息。

键入M列出了太多的类,所以我键入了e,它没有出现在打字错误的版本中,这给人的印象是这个类没有被编译器拾取。

由于它们都在相同的解决scheme中,而不是添加对DLL的引用,所以添加对类库项目本身的引用(“添加引用”对话框将具有此标签)。

啊,这是一个不同的解决scheme。 错过了。 你如何尝试,而不是添加一个引用项目添加到您的类库编译的DLL的引用。 “添加引用”对话框有一个“浏览”选项卡。

如果您为同一解决scheme中的项目引用程序集,请添加一个Project引用(使用“Projects”选项卡),而不是浏览\ bin \ Debug(或\ bin \ Release)文件夹中的dll(使用“浏览”选项卡)。 请参阅下面的截图。 如果它被认为是一个外部程序集,只浏览程序集/ dll文件。

在这里输入图像说明

我在VS 2010中创build了一个MVC 2应用程序的testing项目时遇到了类似的问题。 症状是相同的。

ReSharper的消息有些误导。 有一刻我完全忽略了ReSharper,并做了“手动VS方式”:

  1. 我清理了解决scheme。
  2. 我手动添加了对MVC项目的引用。
  3. 我手动添加使用指令。
  4. CTRL-Shift-B键

在这个阶段,我得到了一个编译错误:我应该在我的testing项目(叹气)中引用System.Web.Mvc程序集。 添加这个引用会导致项目编译。 ReSharper问题依然存在,但ReSharpertesting运行程序正常运行。

当我重新启动VS时,ReSharper错误也消失了。 我不确定是否需要重新启动 – 只需closures.cs文件就足够了。

从现在开始,当我看到ReSharper消息

无法引用模块。 可能参考会产生项目之间的循环依赖关系。

我会读

无法引用模块。 可能引用会在项目之间产生循环依赖关系,或者你缺less对引用依赖关系依赖关系的一些引用。

另一个可能的解决方法,只是为我工作:

如果您有Assembly A,它引用了Assembly B,它们都引用非项目(外部)程序集X,程序集B的代码将不会识别您引用了X,那么请按顺序尝试以下步骤:

  • 从B和A中删除对X的引用
  • 在B中重新创build对X的引用
  • 在A中重新创build对X的引用

显然,VS将不会识别项目中外部程序集的引用,该引用是另一个已经引用外部项目的项目的依赖项。 通过从头开始重新设置参考,你克服了这一点。 这很奇怪

我面临这个问题,通过closures视觉工作室,重新开放视觉工作室,清理和重build解决scheme,我解决了这个问题。 这对我有效。

如果使用TFS,执行获取最新(recursion)并不总是工作。 相反,我通过点击源代码控制=>获取特定版本,然后单击这两个框强制获得最新。 这往往工作。

在这里输入图像说明

如果仍然不起作用,那么删除suo文件(通常在与解决scheme相同的位置find)迫使visual studio从源文件中获取所有文件(并随后重新生成suo文件)。

如果这不起作用,那么请尝试closures所有打开的文件并closuresVisual Studio。 当你下次打开Visual Studio时,应该修复它。 有一个resharper错误是这样解决的。

不幸的是,唯一能为我工作的是在临时将类文件临时复制到别处之后,完全删除并重新创build类库项目。 只有这样,ASP.Net Web项目才能识别引用类库项目的using语句。 这是与Visual Studio 2010,不使用ReSharper。

我有类似的问题。 什么对我来说是我从Visual Studio添加了错误的类库 。 我通过使用visual studio的searchfunction添加。

我需要做的是添加新项目> Visual C#>类库 。 而这个新添加的类库是正确的,现在可以添加为任何项目的参考。

我最近偶然发现了一个类似的问题。 我正在使用Resharper Ultimate 2016.1.2在Visual Studio 2015中工作。 我试图添加一个新的类到我的代码库,而试图从另一个程序集引用一个类,但是Resharper会为这个包引发一个错误。

在同事的帮助下,我发现被引用的类存在于全局名称空间中,并且不能从新类访问,因为被另一个同名的实体隐藏了,这个实体与当前命名空间中存在的相同。

在所需的名称空间之前添加一个“global ::”关键字帮助我引用实际上正在寻找的类。 更多细节可以在下面列出的页面上find:

https://msdn.microsoft.com/en-us/library/c3ay4x3d.aspx