我有一个包含Visual Studio 2008中的网站和类库的解决方案。
然后我在解决方案之外有另一个需要引用类库的网站项目。我右键单击Bin文件夹或Project并选择Add Reference,然后选择我的类库项目,它将类库所需的15个左右的DLL添加到网站bin文件夹,但没有.cs文件识别using语句。
using MyLibrary.MyFolder;
它说无法解决它,ReSharper只是说它可以被安全删除,因为它没有被使用。
ReSharper可以识别它需要引用并建议它“引用MyLibrary并使用MyFolder”。我不确定为什么它建议我添加一个我已有的参考。当我提出建议时,我收到错误
“无法引用模块。可能,引用会在项目之间产生循环依赖关系。”
我已尝试访问网站属性页并删除所有引用并重新添加它们,但它会产生相同的错误。任何想法为什么这不起作用?
答案 0 :(得分:155)
此外,检查新解决方案的项目是否针对您尝试包含的项目的兼容框架运行。我试图在3.5项目中包含对4.0项目的引用。
答案 1 :(得分:85)
我找到了如何解决这个问题(至少对我而言)。为什么它有效,我不确定,但确实如此。 (我刚试过第二个有同样问题的网站,以下解决方案也适用于此。)
我尝试了正常清理项目并重建,关闭所有Visual Studio实例并重新启动它们,甚至尝试重新启动计算机。
实际工作的是在Visual Studio中打开项目,关闭所有打开的选项卡,然后关闭它。
在我打开标签之前,因为我认为它不重要(我几乎没有关闭我正在使用的标签)。
答案 2 :(得分:31)
一种可能性是类库的目标.NET Framework版本高于项目的.NET Framework版本。
答案 3 :(得分:8)
我有一个类似的问题,我的所有引用都会被Resharper错过了 - 对我有用的解决方案是清除Resharper Cache然后重新启动VS
工具 - >选项 - > resharper->选项 - >常规 - >单击clear caches按钮并重新启动VS
答案 4 :(得分:4)
我有类似的问题,VS有时会建立,有时不会。经过一些搜索和尝试后,我发现我对不同库中的同名类('FileManager')有一个模糊的引用。不构建的项目是我的单元测试,它引用了我的解决方案中的所有模块。执行对特定模块的引用可以为我排序。
我的观点是:不要责怪ReSharper或VS,最好仔细检查一下是否真的没有某种循环引用。更常见的是,在不同模块中具有相同名称的类可能会引起混淆,并且通常是设计不良的症状(就像我的情况一样)。
答案 5 :(得分:3)
这听起来与ReSharper类似:
http://www.jetbrains.net/devnet/thread/275827
根据线程中的一个用户强制构建修复了第一次构建后的问题(CTRL + Shift + B)..
听起来像ReSharper特别在他们的情况下的问题..你是否尝试过建设而不管警告和可能的错误错误?
答案 6 :(得分:2)
如果您正在引用同一解决方案中的项目的程序集,请添加项目引用(使用“项目”选项卡),而不是在\ bin \ Debug(或\ bin \ Release)文件夹中浏览dll (使用“浏览”选项卡)。见下面的屏幕截图。如果它被认为是外部程序集,则仅浏览程序集/ dll文件。
答案 7 :(得分:2)
我删除了项目的* .csproj.user(resharper文件),然后关闭所有标签并重新打开它。之后,我能够编译我的项目,并且没有resharper警告。
答案 8 :(得分:2)
由于它们都在同一个解决方案中,而不是添加对DLL的引用,所以添加对类库项目本身的引用(“添加引用”对话框将有一个选项卡)。
啊,这是一个不同的解决方案。错过了。如何尝试而不是添加对项目的引用添加对类库的已编译DLL的引用。 “添加引用”对话框有一个“浏览”选项卡,可以执行此操作。
答案 9 :(得分:2)
我有这个问题。我花了很长时间才弄明白。我有人帮助我。我们重建,清理并重新启动Visual Studio,但这并没有解决它。我们删除并重新添加了引用...
一切都无济于事......直到!
我的问题的解决方案是我的班级声明拼写错误。
在你严厉地评判我之前,请允许我解释为什么它不愚蠢,以及为什么即使是最聪明的程序员也可能犯这个错误。
由于错误发生在名称的早期,因此当我开始输入时,它并没有出现在intellisense类列表中。
e.g。
班级名称:
Message.cs
声明:
public class Massage
{
//code here
}
按摩和小字体,按摩看起来与消息相同。
键入M列出了太多的类,所以我键入了e,它没有出现在错误的版本中,这给人的印象是该类没有被编译器选中。
答案 10 :(得分:0)
另一个可能对我有用的修复:
如果您有引用程序集B的程序集A,它们都引用了非项目(外部)程序集X,而程序集B的代码将无法识别您引用了X,请按顺序尝试以下步骤: / p>
显然,VS不会识别项目中对外部程序集的引用,该项目是已引用外部项目的另一个项目的依赖项。通过从头开始再次设置参考,您可以克服这个问题。这很奇怪。
答案 11 :(得分:0)
在为MVC 2应用程序创建测试项目时,我在VS 2010中遇到了类似的问题。 症状相同。
来自ReSharper的消息有些误导。有那么一刻,我完全忽略了ReSharper并做了“手动VS方式”:
在这个阶段我遇到了一个编译错误:我应该在我的测试项目(叹息)中引用System.Web.Mvc
程序集。添加此引用会导致项目编译。 ReSharper问题仍然存在,但ReSharper测试运行器仍在运行。
当我重新启动VS时,ReSharper错误也消失了。我不确定是否需要重启 - 只需关闭.cs文件即可。
从现在开始,当我看到ReSharper消息时
无法引用模块。大概, 参考将产生循环 项目之间的依赖关系。
我会读
无法引用模块。大概, 参考将产生循环 项目之间的依赖关系, 或者您缺少对引用依赖项的依赖项的一些引用。
答案 12 :(得分:0)
我遇到了这个问题,我通过关闭视觉工作室,重新开放视觉工作室,清理和重建解决方案来解决这个问题。这对我有用。
答案 13 :(得分:0)
如果使用TFS,执行Get latest(递归)并不总是有效。相反,我点击Source control =>强制获取最新信息。获取特定版本,然后单击两个框。这往往有效。
如果它仍然无效,则删除suo文件(通常与解决方案位于同一位置)会强制visual studio从源中获取所有文件(并随后重建suo文件)。
如果这不起作用,请尝试关闭所有打开的文件并关闭Visual Studio。下次打开Visual studio时,应该修复它。有一个resharper bug以这种方式解决。
答案 14 :(得分:0)
我最近偶然发现了类似的问题。我正在使用Resharper Ultimate 2016.1.2在Visual Studio 2015中工作。我试图在我的代码库中添加一个新类,同时尝试从另一个程序集引用一个类,但Resharper会为该程序包引发一个错误。
在一位同事的帮助下,我发现引用的类存在于全局命名空间中,并且无法从新类访问,因为它被当前命名空间中存在的另一个同名实体隐藏
添加' global ::'所需命名空间之前的关键字帮助我引用了我实际需要的类。有关这方面的更多详细信息,请参见下面的页面:
答案 15 :(得分:0)
在确认使用相同版本的asp.net之后。我删除了项目。清理解决方案并重新添加项目。这对我有用。
答案 16 :(得分:0)
答案 17 :(得分:-1)
不幸的是,对我来说唯一有用的就是在将类文件临时复制到其他地方之后完全删除并重新创建类库项目。只有这样,ASP.Net Web项目才能识别引用类库项目的using
语句。这是使用Visual Studio 2010,而不是使用ReSharper。
答案 18 :(得分:-1)
我有类似的问题。对我有用的是我在visual studio中添加了错误的类库。我通过使用visual studio的搜索功能添加了。
我需要做的是添加新项目> Visual C#>班级图书馆。这个新添加的类库是正确的,现在可以添加为任何项目的参考。
答案 19 :(得分:-3)
您可能忘记添加引用您需要导入的类库。
右键单击要导入的类库(包含多个导入的类库), - >添加 - >参考(选择项目 - >解决方案 - >选择您想要的类库从 - > OK)导入